Software Engineering
Software Engineering
Tech(CSE) I-Sem
UNIT I SOFTWARE, SOFTWARE ENGINEERING, AND PROCESS The Nature of Software: * There are seven broad categories of computer software, that continuing challenges for software engineers are: (1) System Software: * It is a collection of programs written to service other programs => Some system software processes complex, but determinate information structure and some other processes largely indeterminate data Ex: => Compilers, editors and file management utilities Characteristics: => Heavy interaction with computer hardware => Heavy usage by multiple users => Complex data structures => Multiple external interfaces => Concurrent operation (2) Application Software: * It is a standalone program, that solve a specific business need * This software process business (Or) Technical decision making. In addition it is used to control business functions in real time Ex: => Point of sale transaction processing => Real time manufacturing process control (3) Engineering / Scientific Software: * This software used in various applications such as; => Astronomy => Molecular biology => Automated Manufacturing etc. * Modern application within the scientific / engineering area is moving away from conventional numerical algorithm * Computer aided design, system simulation and other interactive application, begun to take on real time (4) Embedded Software: * This Software resides within a product (Or) System * It is used to implement and control features and functions for the end user and for the system itself Ex: => Keypad control for a microwave oven => Digital Functions in an automobile such as fuel control, dash board Displays and braking system etc., (5) Product-line Software: * It is designed to provide a specific capability , for use by many different customers * This software focuses on esoteric market place and address mass consumer market
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 1
Availability (24/7/365) Availability is a general term that is used to describe the amount of time over a oneyear period that the system resources are available in the wake of component failures in the system. Availability, in the content of a computer system, refers to the ability of a user to access information or resources in a specified location and in the correct format. Data driven Data driven means that progress in an activity is compelled by data, rather than by intuition or personal experience. Data-driven programming is a programming paradigm in which the program statements describe the data to be matched and the processing required rather than defining a sequence of steps to be taken. Data driven programming is a programming model where the data itself controls the flow of the program and not the program logic. It is a model where you control the flow by offering different data sets to the program where the program logic is some generic form of flow or of state-changes. Ex: If you have program that has four states: UP - DOWN - STOP - START You can control this program by offering input (data) that represents the states: set1: DOWN - STOP - START - STOP - UP - STOP set2: UP - DOWN - UP - DOWN The program code stays the same but data set (which is not of a dynamic input type but statically given to the computer) controls the flow Content Sensitive Content sensitive is one which can automatically choose from a multiplicity of options based on the current or previous state(s) of the program operation. Content sensitivity is almost ubiquitous in current graphical user interfaces, usually in the form of content menus. Content sensitivity, when operating correctly, should be practically transparent to the user. Ex: Clicking on a text document automatically opens the document in a word processing environment. The user does not have to specify what type of program opens the file under standard conditions. Continuous Evolution Software Evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing software initially, then repeatedly updating it for various reasons. Immediacy It is the quality of bringing the content into direct and instant involvement with clients request, giving rise to a sense of urgency or excitement.
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 3
(i) Quality Focus: * Any engineering approach [including software engineering] must rest on an organizational commitment to quality * Total quality management promote a continuous process improvement, this leads to development of effective approaches to software engineering * The bedrock that supports software engineering is a quality focus (ii) Process: * The process layer is the foundation for software engineering * It is the glue that holds the technology layers together and enables rational and timely development of computer software * It defines a framework that must be established for; => Effective delivery of software engineering technology * The software process forms the basis for management control * It establishes the context in which => Technical methods are applied =>Work products are produced [i.e. models, documents, data, reports, forms etc..] => Milestones are established => Quality is ensured and change is probably managed
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 4
Generic Framework Activities: (1) Communication: * It involves heavy communication and collaboration with the customer * Also it includes requirement gathering and related activities (2) Planning: * It describes the => Technical tasks to be conducted => The risks that are expected => Resources that will be required => Work products to be produced => Work Schedule (3) Modeling: * It describes the creation of models that allow the developer and the customer to understand software requirements and design for those requirements (4) Construction: * It combines => Code generation [either manual (Or) automated] => Testing [Required uncovering errors in the code]
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 9
Software Process Assessment Different approaches (1) Standard CMMI Assessment Methods for Process Improvement [SCAMPI] * It provides a five step process assessment model. They are i. Initiating ii. Diagnosing iii. Establishing iv. Acting v. Learning (2) CMM Based Appraisal for Internal Process Improvement [CBAIPI] * It provides a diagnosing techniques for assessing the relatively maturity of a software organization (3) SPICE [ISO / IEC 15504] * It defines a set of requirements for software process assessment * This standard helps the organization in developing an objective evaluation of any defined software process (4) ISO 9001: 2000 for Software * This standard is applied to any organization that wants to improve; => the over all quality of the products, systems, services it provides * This standard is directly applicable to software organizations and companies * This standard uses a Plan do Check act cycle that is applied to quality management elements of software projects Plan => It establishes the process objectives, activities and tasks necessary to achieve high quality software and resultant customer satisfaction Do => It implements the software products [including both framework and umbrella activities] Check => It monitors are measures the process to ensure that all requirements established for quality management have been achieved Act => It initiates the software process improvement activities that continually work to improve the process
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 13
R.G.Kumar/Asst.,Prof/CSE/SIETK
Page 14
Level 1: Initial Processes are usually ad hoc and chaotic Organization usually does not provide a stable environment Maturity level organizations often produce products and services that work Maturity level organizations are characterized by: o Tendency to over commit o Abandon processes in the time of the crisis o Not be able to repeat their past successes Level 2: Managed Organization has achieved all the specific and generic goals Projects of the organization have ensured that: o Requirements are managed o Processes are planned o Performed, measured, and controlled Level 3: Defined Processes are well characterized, and understood, are described in standards, procedures, tools and methods The organizations set of standard processes, is established and improved over time Establishing consistency across the organization
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 15
R.G.Kumar/Asst.,Prof/CSE/SIETK
Page 16
Software Myths: * It is beliefs about software * The process used to built it, can be traced to the earliest days of computing * The myth have a number of attributes that have made them insidious [i.e. proceeding inconspicuously but harmfully] * For instance myths appear to be reasonable statements of facts [Sometimes containing elements of truth] (1) Management Myths: * Managers in most disciplines are often under pressure to maintain budget, keep schedules from slipping and improve quality * A software manager often grasp at belief in a software myth, if that belief will lessen the pressure Myth 1: We already have a book that is full of standards and procedures for building software..Wont that provide my people with everything they need to know? Reality: => The book of standards may well existsBut is it used? => Are software practitioners aware of its existence? => Does it reflect modern software engineering practices? => Is it complete? Is it adaptable? => Is it streamlined to improve time to delivery while still maintaining a Focus on quality?
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 17
R.G.Kumar/Asst.,Prof/CSE/SIETK
Page 18
R.G.Kumar/Asst.,Prof/CSE/SIETK
Page 19