What are the Goals of Software Design?
Good software design process is like the building of a home. In home building process what is do is-
“We discuss the details with architect. Architect listen our requests, convert our request to plan (blueprint). Then the builder will start work according to the blueprint.”
Similarly to develop modern enterprise level object oriented system we need a well-organized approach to design the system. Design phase is one of the most important phase of software development life cycle. In this stage we can trace many problems those are associated with the failure of a software like- poor design, inadequate communication between developers and customers etc. So we need to invest our time on design process. It will help us to –
- Review the current business process.
- Identify if there any flaws inside the business process and fix them all.
- Identify if there any inefficiencies and fix them all.
- Customer will understand how the software development process occurs.
- Incorporate customers as the partners of the process.
- Create realistic project scopes and timelines for completion of the project.
- Create a basement for determining the software testing requirements.
- Reduce the cost and time required to implement the software solution.
Common Software Design
In order to design a successful software system we need a proven methodology. UML is a proven methodology for Object Oriented Design. UML is provides standard, systematic way of design of object oriented software. UML allows us-
- Visualize the software at various levels of details
- Verify the requirements with users
- Verify the scope of the project with users
- Define the scope of the testing of the system.
- Incremental development process
- Parallel development of large system
It also allow each team to
- Aware about how their pieces of system fit into the system
- Handle any changes that may affect other teams.
UML allows us a series of textual and graphical designs for the proposed solution. These designs define
- Scope of the system
- Components of the system
- How the user will interact with the system
- How the system components interact with each other to implement the system functionality.
Some common models used in UML are the following:
- Software Requirement Specification (SRS):
Textual description that contains overall responsibilities and scope of the system.
- Use Case Diagram:
A visual or textual or both representation of “how the system will behave” from the user’s perspective.
- Class Diagram:
A visual representation of objects that will be used to construct the system.
- Sequence Diagram:
A visual description of how objects will interact with each other during execution of the program.
- Collaboration Diagram:
Visual representation of how objects are organized to work together during the execution of the program.
- Activity Diagram:
A visual representation of the flow of execution of a process or operation.
CSM, CSPO, CSD, CSP-SM, CSP-PO (ScrumAlliance.org)
Certification Profile Link-
Currently working as Lead Team (Application Architecture) at Raven Systems Ltd. Passion for software development especially agile practices such as TDD with in depth knowledge of Object Oriented Programming, SOLID Principles, Gang of Four Design Patterns, Some Enterprise Application Architectural Patterns. Over 8 years of software development experience ASP.NET. Has the ability to understand and transform complex business requirements into software ensuring applications are delivered on time. Also experience in non Microsoft .NET technologies such as Dapper.Net, Git, Structure Map & Angular, Bootstrap, HTML-5, CSS-3 etc.