Lecture 1 ,2 _ 3.ppt
Document Details
Full Transcript
Software Engineering Lecture 01 ,02 &03 Software Engineering Concepts Hamdard University, Madinat al- Hikmah, Hakim Mohammad Said Road, Karachi - 74600, Pakistan 1 Books Referred book: Software Engineering A pr...
Software Engineering Lecture 01 ,02 &03 Software Engineering Concepts Hamdard University, Madinat al- Hikmah, Hakim Mohammad Said Road, Karachi - 74600, Pakistan 1 Books Referred book: Software Engineering A practitioner’s Approach (7th International Edition) By Mc Graw- Hill 2 Instructor: Muhammad Imran Saeed What is Software Engineering? The practical application of scientific knowledge to the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them. The systematic approach to the development, operation, maintenance, and retirement of software. The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines. Multi-person construction of multi-version software. Why study Software Engineering? Building software without discipline is crazy Software is critical to society Building a large complete software project is hard There is a perceived crisis in our ability to build software. Software Engineering is concerned with the theories, Methods and tools for developing & managing software products. Scope , time and cost are the three important parameters that you have to implement on software engineering. Software is critical to society Economically important Essential for running most enterprises Key part of most complex systems Essential for designing many engineering products In many if not in most cases, the software is embedded in the system you are using — you don’t see the software Software Engineering Layers Tools Methods Process Model Quality What is a Software ? Software is instruction (computer program) that when executed provide desired features, functions and performance. Role of S/w >: Dual Role Product Vehicle for delivering a product What is a Software ? Role of S/w >: Software delivers information Transforms personal data Manages business information Provide gateway to worldwide information network. Changing Nature of Software Application Software >: Seven band collection or categories. System Software:- Collection of programs written to service other programs (compiler, editor, file management, OS, drivers, Network software.) Application Software:- Consist of standalone program that solve specific business need. Scientific Software:- Is collection of programs that give scientific application. Changing Nature of Software Embedded Software:- Resides with in a product or features and functions for the end user (e.g. Keyboard control for oven, digital function in automobile like fuel control). Product Line Software:- Designed to provide specific capabilities for customers. Web Application:- Are set of linked hyper text files. Changing Nature of Software Artificial Intelligence:- Software make use of non-numerical algorithms to solve problems like expert system, playing games. Software Evolution Day by day change regardless of its application domain size or complexity computer software will evolve overtime. Change (often referred to as software) device that process and occurs when error are corrected, when the software us adapted to a new environment. When the customer requested new feature is function, when the benefit in modern context. Software Evolution Manny lehman developed unified theory for software evolution. The law of continue change(1974) The law of increasing complexity (1974) The law of Self Regulation(1974) The law of continuing growth (1980) The law of Decaling quality (1996) The feedback system law (1996) Software Evolution The law of continue change(1974):- E- Type systems must be continually adapted or else they became progressively less satisfactory. The law of increasing complexity (1974):- As an E-type system evolves its complexity increases on less work is done to maintain or reduce it. Software Evolution The law of Self Regulation(1974):- The type of system evolution process is self regulating with distribution of product and process measure close to normal. The law of continuing growth (1980):- The functional continent of E-Type systems must be continually increased to maintain user satisfaction over the system’s of life time. Software Evolution The law of Decaling quality (1996):- The quality of E-type system will appear to be decaling unless they are maintained and adapted to operation environment change. The feedback system law (1996):- E-Type evolution process multi level feedback system and must be treated such to achieve significant improvement over any reasonable base. Some “crisis” issues Relative cost of hardware/software Low productivity “Wrong” products Poor quality Constant maintenance Technology transfer is slow Software Characteristics To gain an understanding of software (and ultimately an understanding of software engineering), it is important to examine the characteristics of software that make it different from other things that human beings build. Software Characteristics When hardware is built, the human creative process (analysis, design, construction, testing) is ultimately translated into a physical form. If we build a new computer, our initial sketches, formal design drawings, and bread boarded prototype evolve into a physical product (chips, circuit boards, power supplies, etc.). Software Characteristics Software is a logical rather than a physical system element. Therefore, software has characteristics that are considerably different than those of hardware: 1. Software is developed or engineered, it is not manufactured in the classical sense. 2. Software doesn't "wear out.“ 3. Although the industry is moving toward component- based assembly, most software continues to be custom built. Software Myths Misleading attributes, Miss understanding about software and the process used to built it. Management Myths >: We already have a book that is full of standards and procedures for building software want that provide my people with everything they need to know? Software Myths Customer’s Myth >: A general statement of objectives is sufficient to begin writing programs, we can fill in detail later. Project requirements continually change , but change can be accommodated because software is flexible. Software Myths Practitioner’s Myth >: Once we write the program and get is to work our job is done. The only deliverable work product for a successful project is the working program. Legacy Software (older programs) Legacy software were developed decodes age and have been continuously modified to meet changes in business requirement and computing platforms. Remain supportive to business functions. Quality of Legacy Software >: Poor quality legacy software have inextensible design, poor or non-existent documentation, convoluted (Complex) code, test case and result that were never archived (means safe), poorly managed change history. The Classical life cycle Classical life cycle are systematic sequential approach to s/w development that beings customer specification of requirement and progress planning, modeling, construction and development on-going support of computer software The Classical life cycle Computer Based System Set or arrangement of things so related as to form a unity. Set of facts principles, rules etc. classified and arranged in an orderly form so as to show a logical plan thinking the various parts. Computer Based System >: Set or arrangement of elements that are organized to accomplish some pre-defined goal by processing information. Computer Based System Computer Based System >: Goal may be to support some business functions or to develop a product that can be sold to generate business revenue. Element of Computer Based System >: Software >: Computer program, data structures & related work product that serve to effect the logical methods, procedures or control that is required. Computer Based System Element of Computer Based System >: Hardware >: Electronic device that provide computing capability the interconnectivity devices for example Network, switched, telecommunication devices that enable flow of data and electromechanical devices. Example >: Sensors, motors, pumps that provide external world function. Computer Based System Element of Computer Based System >: People >: Users and operators of hardware and software. Data Base >: A large, organized collection of information that is accessed via software, overtime. Computer Based System Element of Computer Based System >: Documentation >: Descriptive information that explain the users and operation of system. Procedure >: The steps that define the specific use of each system elements or the procedural text in which system resides. The System Engineering Hierarchy The key to system engineering is a clear understanding of context. For software development this means creating a "world view" and progressively narrowing its focus until all technical detail is known. Process usually begins with a “world view.” The entire business or product domain is examined to ensure that the proper business or technology context can be established. The System Engineering Hierarchy Hardware Software People Business System design Hardware Function Behavior Construction and Integration The System Engineering Hierarchy The world view is refined to focus more fully on a specific domain of interest. Within a specific domain, the need for targeted system elements (data, S/W, H/W, and people) is analyzed. Finally, the analysis, design, and construction of a targeted system element are initiated. The System Engineering Hierarchy The System Engineering Hierarchy Product Engineering In product engineering. The goal is to translate the customer’s desire for a set of defined capabilities into working product to achieve goal product engineering must drive architecture and infrastructure. Architecture encompasses for distinct system components, Software, hardware databases (Data), people. Product Engineering A support infrastructure is established and include the technology require to tie the components together and information for example documents video that is used to support components. Requirement Engineering Complete Product Hardware Software People Component Engineering Data Function Behavior Analysis & Design Modeling Program Component Business Process Engineering Business process re-engineering (BPR) is the analysis and redesign of workflows within and between enterprises in order to optimize end-to- end processes and automate non-value-added tasks. The concept of BPR was first introduced in the late Michael Hammer's 1990 Harvard Business Review article and received increased attention a few years later, when Hammer and James Champy published their best-selling book, Reengineering the Corporation. Business Process Engineering Three different architectures must be analyzed and designed with in context of business objectives and goals. Data Architecture >: Provides framework for the information needs of a business or business function individual building blocks are the data objects that are used by the business. Business Process Engineering Data Architecture >: A data object contains a set of attributes that defines some aspects quality characteristics of data once data objects are defines, their relationships is defined which indicates how object are connected. The data objects of low between business function and are transformed to provide information's. Business Process Engineering The Application Architecture >: Encompasses the elements of systems that transforms objects with the data architecture for some business purpose application architecture may be system of program software that perform this transformation. Technology Infrastructure >: Provides functions for data and application architectures. It emphases hardware and software that support application and data. It includes computers, OS, N/W storage and telecommunication technique. System Modeling Important element of systems engineering process. Engineer creates models that define the processes that serve the need of the view under consideration. Represent behavior of processes and assumptions on which the behavior is based. Represent all linkages that will enable the engineer to better understand the view. System Modeling To construct system model, the engineer should consider a number of factors. 1. Assumption that reduce the number of possible permutation (changes) and variations thus enabling a model to reflect the problem in a reasonable manners. 2. Simplifications that enable the model to be created in timely manner. 3. Limitation that help to bound the system. System Modeling 4.Constraints that will guide the manner in which model is created and the approach taken when model is implemented. 5.Preferences that indicate the preferred architect- -ure for all data functions and technology. Data Modeling Answer set of questions that are relevant to any data processing applications. What are primary objects processed by system? What is composition of each data object and what attributes describe the object? Where do the objects currently reside? What are relationship between each object and other objects. What are relationship between objects and processes that transform them? Data Modeling Methods Data modeling methods make use of entity relationship diagrams which enables software engineer to identify data objects and their relationship using graphical notation. The ERD is specially used for applications in which data and relationship that govern data are complex. The data model consists of data objects, attributes and relationship. Data Modeling Methods 1.Data Objects >: Is a representation of almost any composite information that must be understand by software composite information is something that has no of different properties and attributes. Data objects can be entity, event or occurrence a role an organizational unit place. Data Modeling Methods 2. Attributes >: Define properties of data object to take on one of three characteristic. I.Name as instance of data object. II.Describe the instance III.Make reference to another instance or another table. 3. Relationship >: Data objects are connected to one another in variety of ways. Cardinality and Modality The data model must be capable of representing no of occurrences objects in relationship and it provides max no of objects participate in a relationship. 1. One – to – one (1:1) 2. One – to – Many (1:N) 3. Many – to – Many(M:N) Modality refers to the minimum number of times an instance in one entity can be associated with an instance in the related entity. Provides an identification of whether or not a particular data object means participate in relationship. Lecture End