Chapter 5 – System Modeling
Chapter 6 – Architectural Design
# Quiz
Structural models show the organization and architecture of a system. Class diagrams are used to define the static structure of classes in a system and their association.
System modeling is the process of developing abstract models of a system, with each model presenting a different view or perspective of that system.
An activity diagram shows the interactions between a system and its environment
Structural models may be either static or dynamic
Which of the following options are NOT part of model-driven architecture
The choice of architectural style and structure should depend on the non-functional requirements of the system
Architectural patterns are a means of reusing knowledge about generic system architectures. They describe the architecture, explain when it may be used, and point out its advantages and disadvantages.
Commonly used Architectural patterns include model-view-controller, layered architecture, repository, client–server, and pipe and filter.
Language processing systems translate one language into an alternative representation of that language.
Pipe and filter systems are best suited to batch processing systems and embedded systems where there is a lot of user interaction.
# Exercise
Based on your experience with a bank ATM, draw an activity diagram that models the data processing involved when a customer withdraws cash from the machine.
Draw a sequence diagram for the same system. Explain why you might want to develop both activity and sequence diagrams when modeling the behavior of a system.
Both activity and sequence diagrams should be used when modeling a system because it will give a fuller description of the system structure so that the developers and clients have a very clear idea of how everything works together. The activity diagram will give every possibility and show the flow of control within the system. Sequence diagrams on the other hand give a more detailed look at a system but only for a single use case. Thus if they are combined, there can be an overarching view through the activity diagrams and more specific instances with the sequence diagrams.
Draw state diagrams of the control software for the software for a DVD player.
When describing a system, explain why you may have to start the design of the system architecture before the requirements specification is complete.
Architecture design is concerned with understanding how a system should be organized and designing the overall structure of that system In the model of software development process, architecture design in the first stage of the system. It describes hoe the system is organized a set of communicating components. Writing specification for the whole system might bring great complexity and it is define their specifications and it will define specifications and put into the respective subsystem..
You may have to design the system architecture before the requirements specification is complete because the architecture has a significant impact on the non-functional requirements and can also influence the functional requirements as well. Specifically, in order to demonstrate to stakeholders that an application will meet its performance requirements a project manager or system architect may have to show how the architecture will aid in accomplishing this goal. According to Sommerville the components affect the requirements and therefore an architecture that explains the components and their relationships may aid in the determination of the requirements.Performance and security may pose to be conflicting non-functional requirements when architecting software systems. Make an argument in support of this statement.
Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. often these are applied to the system as a whole rather than individual features or services. For a system that prioritizes security, design could include layered structure !herein there is a high level of security in every layer until the innermost one. We can say then say that there is limited access to the layers of the system as a preventive measure. On the other hand, if availability is to be prioritized, there should me multiple and redundant components which shall serve as back up for the system that can also be updated without stopping the hole system.Therefore, for a system Which see's both availability and security at the same time, there will be design conflicts.
Should there be a separate profession of ’software architect’ whose role is to work independently with a customer to design the software system architecture? A separate software company would then implement the system. What might be the difficulties of establishing such a profession?
No, there should not be a separate profession of ‘software architect’ whose role is to work independently with a customer to design the system architecture. Software architecture affects the performance, robustness, disreputability, and maintainability of a system. As it has an important role, the system architecture cannot be designed simply by working with the customer alone independently. It is to be analyzed from various prospects.
The difficulties that may arise by the establishment of such profession are:
- Difficulty in the implementation.
The company that would implement the system may find difficulty in understanding the architecture. - Incompatibility of the architecture with the developing system.
- Architecture may not satisfy all the technical requirements.
- Re-work or redesign is needed sometimes, due to incompatibility or change in technical requirements
- Difficulty in the implementation.