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
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
-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