System Development Techniques Individual Assignment
System Development Techniques
Diploma in Information Technology
Lesson 7
Learning outcomes After studying this chapter and the recommended reading, you should be able to:
• Explain the elements of design • Discuss the inputs and outputs for system design
Systems Design • Analysis provides the starting point for design.
– Main focus is to understand the system
• Design provides the starting point for implementation as solution. • Analysis and design document their results to coordinate the work of
multiple people and to communicate with downstream activities. • Analysis activities create following models.
• class diagrams, • use case diagrams, • use case descriptions, • activity diagrams, • system sequence diagrams, • state machine diagrams.
• The above are the System design inputs.
Systems Design
System Design
• System Design is also a model-building activity. • Designers convert the information gathered during analysis—
the requirements models—into models that represent the solution system.
• System design diagrams: – Design class diagram – Interaction diagrams (sequence diagrams) – Design state machine diagrams – Package diagrams – Component diagrams – Deployment diagrams
Systems Design
• Major models used for analysis and design.
System Design Activities • Specifying in detail how a system will work when deployed within a
specific technology environment. • Some of the details may have been defined during systems analysis, but
much more detail is added during design. • Each part of the final solution is heavily influenced by the design of all the
other parts. Thus, systems design activities are usually done in parallel. – For example, the database design influences the design of application components,
software classes and methods, and the user interface. – The technology environment drives many of the decisions for how system functions are
distributed across application components and how those components communicate across a network.
• When an iterative approach to the SDLC is used, major design decisions are made in the first or second iteration; however, many decisions are revisited and refined during later iterations.
System Design Activities
System Design Activities
• System developers often ask themselves these questions to help them stay focused on the objective of each design activity.
Describe the Environment
• Describing the environment is the first design activity. • Note the SA “Describes” the Environment and not “Design”
the Environment. – Often the SA needs to work with what is currently existing in the
organisation. – The new system must be designed to efficiently interact with the
current Environment. – Some cases, a new system will require changes to existing technology
architecture. In those cases, any changes to the technology architecture are considered and decided upon by the organization as a whole.
• Consists of two key elements: – External systems – Technology architecture
Describe the Environment
• External systems – Interactions among external systems are identified and described by
analysis activities. – During analysis, those descriptions show how information flows to and
from external systems. (e.g. from activity diagram, sequence diagram)
• Information about incoming and outgoing messages is needed, including: – Precise message formats – Web or network addresses of sources and destinations – Communication protocols – Security methods – Error detection and recovery
Describe the Environment
• Technology architecture, – set of computing hardware, – network hardware and topology, and – system software employed by an organization.
• A useful way of starting to describe the environment is to pose a series of questions. (see next slide)
Describing the Environment
• Questions: – What are the key features of the existing or proposed technology
environment that will support or constrain the system? – With what external systems and databases will the system under
development interact? – What devices will be used for automated inputs and outputs? – What user-interface technology will be used?
• The answers to those questions provide a pool of information to be summarized in diagrams and supporting text.
• For a more comprehensive question list, see appendix
Design the Application Components
• A well-defined unit of software that performs one or more specific tasks.
• Things to consider: – Size/scope. – Programming languages. – Build or buy
• Key decisions made when designing application components include – how functions of the system will be grouped or packaged, – how they’ll interact with one another once built (or acquired) and
assembled.
Design the Application Components
• One of the first steps in this design activity is separating the software into subsystems.
• Decisions are also made about the database infrastructure and about the multilayer design in which the user interface is separated from the business logic and database processing.
• The technology architecture will impact many of these design decisions.
Design the Application Components
Design the User Interface
• To the user of a system, the user interface is the system. • The quality of the user interface can make or break a system
after deployment. • Must deal with
– Multiple screens ranging from phones to large multi- monitor displays. – Multitouch screens, voice recognition, and built-in cameras – Users might interact with a system using one technology at their desk,
another in a conference room, and yet another while traveling.
Design the User Interface
• Both an analysis and design activity. – Analysis: • understanding the user’s needs; • how the user carries out the job; • physical contexts of user-system interactions.
– Design: • distribution and packaging of related software • determining which device capabilities and embedded
software will be incorporated into an interface
Design the Database
• The domain model class diagram is created early during systems analysis and is then used to create the implementation model of the database.
• Can be in a text file. • Often, it is a relational database consisting of dozens or even
hundreds of tables that interact with each other. • Sometimes, files and relational databases are used in the
same system. • Might involve performance tuning to make sure the system
actually responds quickly enough – Normalization, speed of retrieval, data redundancy, data consistency.
Design the Database
• Security and encryption issues, which are important aspects of information integrity,
• Database may need to be replicated or partitioned at various locations around the world.
• Databases may be distributed across multiple database servers and may even be located at completely different sites.
• These highly technical issues often require specialized skills from experts in database design, security, performance, and physical configuration.
Design the Software Classes and Methods
• Blueprints for software methods that will be programmed, tested, and eventually deployed.
• Created based on other models: sequence diagrams, state-machine diagrams, domain diagram
System Controls and Security
• Modern systems are subject to a variety of risks, ranging from malfunction due to incorrect data input.
• Need to design the following into the System: – Integrity Controls – Security Controls
System Controls and Security
• Integrity Controls – controls that reject invalid data inputs. – prevent unauthorized data outputs. – protect data and programs against accidental or
malicious tampering.
• Security Controls – controls that protect the assets of an organization
from all threats, with a primary focus on external threats.
Summary
• Systems design are activities that enable a person to describe in detail how the resulting information system will be implemented.
• The output artefacts from System analysis becomes inputs to System design.
Summary
• The design activities are: – Describe the environment – Design the application components – Design the user interface – Design the database – Design the software classes and methods
Summary
• The models that are produced in System Design activities are: – Component diagrams – Deployment diagrams – Design class diagrams – Interaction diagrams (sequence diagrams) – Design state machine diagrams – Package diagrams
Read
Textbook:
• Satzinger, Robert & Stephen Chapter 6
Appendix
• What are the key features of the existing or proposed technology environment that will support or constrain the system? – What operating systems will be used? – What other system software (e.g., Web server, database management,
and intrusion detection software) will be used? – In what ways are network messages filtered or otherwise secured? Are – any changes required to support interactions with external systems or – user-interface devices? – What APIs and development tools are compatible with the existing
technology environment?
Appendix
• With what external systems and databases will the system under development interact? For each system or database, answer the following questions: – What is the timing and frequency of each interaction? – What is the data content of inputs to and outputs from the system? – What protocols will format and encode data flowing to or from the – external system? – What are the security requirements of each inflow and outflow? – What security methods and protocols will be used to satisfy the
security requirements?
Appendix
• What devices will be used for automated inputs and outputs? – What protocols will format and encode data flowing to or from the
devices? – What are the security requirements of each inflow and outflow? – What security methods and protocols will be used to satisfy the
security requirements? – What APIs and development tools are compatible with the existing – technology environment and required automated inputs and outputs?
Appendix
• What user-interface technology will be used? – Where will users be located? – What hardware device(s) will users use? – What operating systems will run on “smart” user-interface devices? – On what other user device software will the system rely (e.g.,
browsers, plug-ins, and software utilities embedded in the device)? – What protocols will format and encode data flowing to or from user
devices? – What are the security requirements of each inflow and outflow? – What security methods and protocols will be used to satisfy the
security requirements? – What APIs and development tools are compatible with the existing
technology environment and required user interfaces?