System Development Techniques Individual Assignment

profileTubekbay001
Lesson7.pdf

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?