Software Design Summary
Software design is to produce a plan (model) that represents a workable (implementable) solution to a given problem. Software design is not procedural, but it is empirical or opportunistic that is an exploration of the potentially very large solution space. Quality software should be developed based on the users’ requirements. A right software development methodology should be employed in order to develop a right product such as Waterfall modeling.
Design process are steps that enable the software developer to describe, analyze all aspects of product to be developed. It should not suffer from the ‘tunnel vision’ that is the ...view middle of the document...
It should integrated with the modern software technology. COMET (Concurrent Object Modeling and Architectural Design Method) is used as a model based design for real time system and Concurrent system. It uses UML language whereby the subsystems are designed by different teams and later combine resulting to the final real time system.
Software design requirements comprise that task that go into determining the needs or conditions to meet for a new or altered product. They include the following: eliciting requirements that are business process documentation and business user’s interviews.
The software engineer analyzes users’ requirements to check whether the stated requirements are precise, complete, uniform, has no ambiguity and resolving any misunderstanding.
The developer then documents the gathering in various forms that is summary list, using natural language technique, use cases, models, user stories and process specification. As per the user's requirements a prototype can be developed and presented to the user. Therefore, the analyst will use these methods to determine the exact requirement of the user so that the system meets the business and users’ needs.
Requirements specification is the output of the requirement analysis process. It includes the following: user/customer requirements; that is, facts and mission of the expected system by the user of the system. Architectural requirements, which tries to explain what is to be undertaken through identifying the correct software design architecture. Structural requirement is also important since it identifies the right structure for the design.
Functional requirements also describe what is to be undertaken through identifying the necessary work load, process or activity that must be completed. It tries to describe the behavior of the as it relates to its system functionality. Non-functional requirements on the other hand is used to check the performance of the system. It places constraints on how the system will do a particular task e.g. accessibility, documentation, efficiency and effectiveness.
Agile Programming Methodology
This is a software development methodology where requirements and solutions evolve through collaboration between self-organizing and developers. It is user-driven model whereby the user points out their requirements about the design where the developer does a continuous delivery of the software by incrementing the original design. It uses the developer-user interaction where the end user is in constant participation during the development and decision making so as to ensure an end user advantage.
Extreme programming is an agile modeling where it involves planning, through collecting of user views and requirements. Each team assesses the requirements and assigns cost to it and group it for deliverable increments. An agreement is made to certain the subsequent incremental of the design as per the user’s requirement.