System Analysis and Design 1
Introduction to Software Engineering Building Software is a complex exercise. Software is produced in several stages. Each stage attempts to deal with a different aspect of the system being developed 2 We had learnt that Software building is a complex exercise and every complex activity require some discipline to handle the complexity. This discipline is Software Engineering. The Software Engineering is a discipline that attempts to handle the complexity incurred during software development process and in turn to produce a reliable and productive software system with minimal errors. As I told you that Software Engineering comprises of multiple stages and yes, it is required too, to develop a reliable software system. By the end of this lesson you will be able to appreciate the initial two stages of Software Engineering namely Analysis and Design. Analysis: Analysis produces a specification of what a system does. The intention is to provide a clear definition of the inputs to, and outputs from, the system, and of the relationship between the two. This stage produces an analysis document. Design: Design produces a specification of how the input-output relationships specified in the Analysis document are obtained. That is, design is the blueprint of the proposed solution to problem at hand. 2
Introduction to SSAD and OOAD In Software Engineering there are two popular methods to model analysis and design problems: Structured Systems Analysis and Design. (SSAD). Object-Oriented Analysis and Design. (OOAD) A method is a specific set of formal tools and techniques used to model a problem. 3 Following are the popular analysis and design methods. SSAD : In SSAD, the system is viewed as being composed of two components, functionality and data, each of which is modeled more or less separately. Functionality are modeled using a technique called process modeling. Data is modeled using a technique called data modeling. Since SSAD models functionality and data separately, we say that it follows a function/data methodology It is more suitable for data intensive projects OOAD : In the last few years, a new methodology has emerged which is in a sense an amalgamation of process-oriented and data-oriented methods. This is called an object-oriented methodology. This methodology is more suitable for projects with complex business logic Now is the time to delve deep into these two methodologies. 3
SSAD Now, we will see with the help of a case study how, after gathering requirements from the client, SSAD is used to : Structure the problem (System Analysis). Arrive at system design (System Design). 4 Case study. The protagonist in our case study is a trainee who takes courses, writes exams, and is graded at the end of the training period. An information system has to be built which computes each trainee s overall class rank whenever requested, using data about his/her performance in the exams conducted so far. 4
System Analysis SSAD The analysis stage produces a structured requirements specification consisting of the following deliverables: A process model consisting of a set of data flow diagrams. A set of process specifications. A data model consisting of an entity-relationship diagram. A data-dictionary. 5 Now let us explore these four terminologies through our case study and some diagrams: 5
Process Model USER emp# Compute rank rank EMPLOYEES 6 Here you are watching a data flow diagram which is depicting the process model. DFDs are created to depict the flow of application i.e. they depict the functionality of the system and eventually lead to Program design. Here in this diagram, Compute Rank is a process which is taking emp# as input from the user and calculating rank and simultaneously it is contacting the table employee as well. 6
Process Specification Process Compute-rank begin for each employee do find all courses taken by employee; for each course taken do find the marks obtained, and the course weight; find the weighted sum WS of the marks obtained in all courses sort employee# in increasing order of WS; output position of emp# in sorted list; end. 7 Here you are watching a Process Specification. The process is named as Compute-rank and it is simply depicting the algorithm of the process. Process Specification is used to specify all the processes which are depicted in DFDs. 7
Data Model EMPLOYEE takes COURSE 8 Here you are watching a E-R diagram which is depicting the data model. E-R diagrams are created to depict the entities and the relationship between them and this eventually leads to database design. These entities are nothing but the data which we have gathered. Here in this diagram, Employee and course are two entities and takes is a relationship. 8
Data Dictionary COURSE = course# + course-name + weight + description course-name = *name of a course, of course * EMPLOYEE = emp# + name + address + (telephone#) EMPLOYEES = {EMPLOYEE + {COURSE + mark}} mark = * mark obtained by a trainee in a test * rank = * rank of a student in a batch, across courses * weight = a number between 0 and 1 indicating relative degree of importance of a course 9 Here you are watching a Data Dictionary. Data Dictionary is a repository that contains descriptions of all the data objects consumed or produced by the software. Each entry in data dictionary signifies the attributes of entities in the E-R diagram. 9
System Design SSAD The design stage in SSAD produces : A database design. A program design. 10 Now let us explore these two terminologies: Database design: The database design is arrived at by applying data modeling techniques to the ER diagram produced during analysis. Program design: The program design consists of : a) structure chart: The structure chart shows the overall architecture of the system, in terms of the various constituent programs (as blackboxes) and their calling structure and parameters. b) program specifications: The program specifications contain the algorithms to generate the required outputs from the given inputs as specified in the analysis document. Note that the process specifications do not specify the algorithms; they merely establish the input-output relationships in the system., as specified by the user. 10
OOAD World is made up of Objects. Analyzing and Designing objects is close to the real world. 11 OOAD stands for Object Oriented Analysis and Designing. World is made up of Objects. So if we analyze and design our programming problems in object scenario than we are close to the real world modeling. Although the concepts underlying object orientation as a programming language go back two decades, it s only in the last few years that Object Oriented Analysis (OOA) and Object Oriented Design (OOD) methods have begun to emerge. 11
OOAD vs. SSAD Advantages of OOAD are Bringing Order to chaos Easy to Handle very Complex projects Driving principles: maintainability, extensibility reusability interoperability quality 12 OOAD has several obvious advantages over SSAD as OOAD is more close to the real world because it is based upon the object. Where SSAD fails after a certain level of complexity, OOAD comes out with flying colors and handle the complexity in a robust and dependable manner. OOAD is supported by various principles like maintainability, extensibility, reusability, interoperability and quality. 12
Constituents of OOAD Consists of : Methodology Step by step procedure of arriving at systems engineering, analysis and design for a problem Notation Graphical representation of design Tool to draw OOAD Diagrams 13 The example of these three constituents is given on the next slide. 13
Examples Methodology Rational Unified Process Notation Unified Modeling Language Tool Rational Rose 14 14
Techniques used for OOAD Fusion Jacobson Rumbaugh Booch Rational Unified Process (RUP)/ Objectory with Unified Modeling Language (UML) 15 There are so many techniques, respective notations and tools to do Object Oriented Analysis and Designing. Few important ones are listed above. 15
Summary What is Systems Engineering? What is Analysis and Designing? What is SSAD and how to perform analysis and designing in SSAD? What is OOAD and how it is an step over SSAD? What are different OOAD techniques? 16 16
Thank You! 17 17