WHAT'S NEW?
Loading...

Define System design. List down the system design approaches and discuss in detail System analysis & design - Tech-n-Savvy Blogger


Definition: Systems design is the process of defining the architecture, modules, interfaces, and data for a system to satisfy specified requirements. Systems design could be seen as the application of systems theory to product development.
1.                  Traditional waterfall SDLC
2.                  Agile methodologies
3.                  Object oriented analysis and design (OOAD)

1.                 Agile Methodology:

The agile methodologies emphasize focus on people; on individuals rather than on the roles that people perform. Unlike the waterfall development methodology, agile forgoes the documentation but is initially difficult to adapt by adding many new facets to the development model that confuse people. “Agile methodologies attempt to capture and use the dynamics of change inherent in software development in the development process itself rather than resisting the ever-present and quickly changing environment. “Traditional methods demand complete and accurate requirement specification before development; agile methods presume that change is unavoidable and should be embraced throughout the product development cycle. The individuals who fill those roles are more important than roles that people fill. Fowler believes that each talented individual bring something unique to the development team and disagrees with the application of engineering principles that viewed people as interchangeable units.
In another article published by Ambler, he summarized a few key lessons learned when doing internet based development via agile methods, these lessons are:
-People matter
-You don't need nearly as many documents as you think
-Communication is critical
-Modeling tools aren't nearly as useful as you think
-You need a wide variety of modeling techniques in your intellectual toolkit
-Big upfront design isn't required
-Reuse the wheel, don't invent it

Self-adaptive software development processes is promoted by the agile methodologies. The process used to develop the software is expected to be refined and improved over time. Improvements are done through a review process associated with the compilation of iterations. Agile methodologies are not for every project. Fowler recommends an agile or adaptive process if your project involves: unpredictable or dynamic requirements, responsible and motivated developers, and customers will understand the process and will get involved.


2.                 Object oriented analysis and design (OOAD)

The object oriented approach looks at a system from a bottom-up view. It combines data and processes (methods) into objects. Within an information system, objects could be customers, suppliers, contracts, and rental agreements. A set of diagrams or models is used to represent various views and functionality of the system and is commonly known as Unified Modeling Language (UML). The OO approach later becomes known as the unified process when these models are used along with a particular method of systems development. Unified process is an iterative and incremental approach to systems development. The goal of OOAD is to improve system quality and productivity of systems analysis and design by making it more usable. Objects are grouped into classes to share structural and behavioral characteristics. OOAD also incorporates the use of inheritance; it allows the creation of new classes that share the characteristics of existing classes. Similar to the agile methodologies, the object-oriented approach to systems development is similar in the way of iterative development approach. In the analysis phase, object-oriented models are used to fill the gap between a problem and the solution. The aim, in essence, is to transform the use cases into analysis model to realize the associated goals.
In Hsueh's study, such analysis model is built through six steps incrementally, and his research team examined these steps by use case description to identify possible participating objects based on some heuristics. To proceed into the design phase, object oriented design involves a transformation process that transforms real-world concepts into a software model that provides solution model. The transformation process is to be achieved by taking the following design issues into consideration:
-Basic issue: concerns basic, common and recurring problems when designing a system. E.g.: decomposes system, to allocate objects, to dispatch control process, and to compose components
-Quality issue: concerns how to enhance nonfunctional requirements
-Trade-off issue: concerns how to resolve conflicting requirements


It is also important to note that the OO model has no well accepted standards. Therefore, these models very significantly from one development to another, some variability in the analysis models' content and structure is unavoidable.

0 comments:

Post a Comment