0% found this document useful (0 votes)
23 views28 pages

SE Unit 1

The document provides an overview of software engineering, including its evolving role, characteristics, and various process models such as Waterfall, Spiral, and Agile. It discusses the nature of software, its impact on hardware performance, and the methodologies used in software development. Additionally, it outlines the importance of software as a vehicle for product transmission and the significance of different software categories like engineering software, web-based software, and artificial intelligence software.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
23 views28 pages

SE Unit 1

The document provides an overview of software engineering, including its evolving role, characteristics, and various process models such as Waterfall, Spiral, and Agile. It discusses the nature of software, its impact on hardware performance, and the methodologies used in software development. Additionally, it outlines the importance of software as a vehicle for product transmission and the significance of different software categories like engineering software, web-based software, and artificial intelligence software.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 28
Introduction to Software Engineering, A Generic View of Process, Process Models UNIT aN Introduction to Software Engineering: The Evolving Role of Software, Changing Nature of Software, Software Myths. A Generic View of Process: Software Engineering - A. Layered Technology, A Process Framework, The Copebility Maturity Model Integration (CAAMI).. Process Models: The Waterfall Model, Spiral Model and’Agile Methodology: Evolution of Software Nature and Characteristics of Software Various Myths associated with Software and Reality Software Engineering and its Layers SN NKR OS Five Generic Process Framework Activities Improving Software Process using CMMI Various Process Models like Waterfall, Spiral and Prototyping Models. SON Software is generally referred to'as an organized set of instructions which when executed by means of a given computing device, delivers the desired result by considering various processes _ Gnd functions. It is an organized set of instructions capable of accepting inputs, processes them ‘and delivers the result in the form of functions and performs as expected by the user. Software _- Engineering is the establishment and application of sound engineering principles for obtaining economically feosible and reliable software that can run efficiently on any real-time machine. Software Engineering consists of various software process models for the development of , 30ftware. A software process is a set of activities that are performed in developing software. There are various software process models that are followed to ease development of software. ‘Some common models are Waterfall model, Spiral model and Protatyping model. SOFTWARE ENGINEERING [JNTU-HYDERABAD] ‘Baiving ROB of Sok Qt. Define software. Explain the evolving role of software. Answe! Definitions of Software . In general terms, software can be defined as an organized set of instructions. These instructions deliver the desired result by considering various processes and functions. Itis an organized set of instructions capable of accepting inputs, processes them and deliver the result in the form of functions. Apart from this, it refers to the records (say software manuals) which help and guide the users to ‘efficiently deal with it. It is now-a-days delivered in the form of a package offering the design documents, source code, installations implementation manuals, operations system manuals. Software Evolution . Modem software act as a vehicle to transmit a product. Role of Software as a Vehicle in Product Transmission Software as a vehicle has certain responsibi s. They are, @ Controlling various operating systems. (i) Creating and managing programs such as, software tools, software erivironments etc. ii) Delivering information. Role of Software in Delivery of a Product ‘As a product, software performs the following tasks, (Transmitting computer data which is a part of computer hardware. (ii) Delivering the computer data that is a part of computer networks accessible by a local hardware. An interesting feature of computer software is its location independence as it is basically used to transform information. Traisforming information involves, 5 (@) Creation of information. (b) Management of information (©) Modification of information (@ Display of information. With the above features, it can be said that today’s software gives more emphasis ‘on the delivery of information. Over the petiod of time, software has made a serious impact in'the field of software. Impact of Software in the Field of Computers Performance of hardware has improved. Memory size of computer has increased. Improvement in storage capacity of the computer, (iv) Availability of latest and exciting ii put and output devices, ©) Development of different computer architectures, systema Wieexbilty of software systems is one ofthe reasons of software béing incorporated in large and complex can be made coe chances tothe hardware is expensive once itis manufactured. However, changes tothe software — ‘Any time during or after the system development. . . Sofware croton ata ate developed as completely new sysiems and hei updates and maintenance ae continuous n evolutioy " : the changing requirements, nat Process where the software is periodically changed over its life time in response to WARNING: KeroxiPhota »lPhotocopying of this hoal ‘of this hook is & CRIMINAL act, Anyone found gullty e LIABLE ta face LEGAL proceedings. ities, ving para ati te lore car pattern done? a the evolution @ Miers nes the market place ‘The where segment deter : Fn, nich the client request is obtained ii y is it done? ° a cer ment determines the reasons for “errors, failures and the necessary FOr improving and recovery. (ii) What are the requirements?) “The what segment specifies the design document test plan, interface, user manual forthe projec” process. (iv)_When itis performed?” ; ‘The when segment determines at which point “of time necessary tests like component test, cost estimate, acceptance test are to be carried out. (v) How itis performed? The how segment specifies the method of rewiting, redesigning, redrawing and coding the project. (vi) By whom itis performed? The ‘by whom’ segment specifies the person who is involved in the particular process/project or The person can be engincet/client/user. 2. Explain about evaluation of software en- gineering methodologies. (Mode! Papers, a2{a) | Sep-21(R 12), Ata)! March-24(R18), Q1(b)) Answer: Software engineering methodologies refers to group of procedures which are performed from initial development phase till the end phase in software development process. These methodologies ‘emerged with many complexities and advancements in programming technologies. Some of the software methodologies are as follows, I. Exploratory Methodology Exploratory methodology is, adopted for developing those software wherein requirements are unclear in the beginning of development. This style is carried out in step by step process ic., by expermenting and exploring. It is only good for developing softwares which performs test research hypothesis as it lacks reliability, extensibility and maintainability. Errors are identified in the final product testing. Therefore it is problematic to modify every time. It is very laborious to maintain _ because of the absence of proper documentation, __ It makes usé’ of unstructured programming or design heuristes for writing program which emphasizes mn global data items. Some of the unstructured Programming languages are BASIC, low-level languages a sembly containing sequence of commands or ements like labels, GoTo. State oriented mode Tike flow cha state machin areata: Bn ic state machine is used for performing an can h produces the result and changes its state, While state diagrams are used for recording the behaviour of machine. 2, Structure Oriented Methodology Structure oriented methodology makes use, of procedural approach to develop functions or procedures, ‘These procedure aré nothing but the instructions which are written by programmer that guides the computer from starting point to end point. It inherits some of the characteristics of unstructured which offers some improvements. There are three elements such as sequence, selection, Iteration. ‘Sequence: Sequence refers to the order in which @ : instructions are implemented. (b) Selection: There are different selection statements Tike if else conditional statements as program reacts upon the choice of selection. (©. _ Iteration: Use of repetitive set of instructions and loops results into the developments of last building block of procedural programming. The main program calls the procedures which passes the appropriate parameters as required. Structure oriented methodology makes use of various notations like Data Flow Diagrams (DFD), data dictionary control flow graphs, entity relationship diagram to generate solution for the issues. It is well suited for all the projects. It is preferable in small memory requirements, and high speed systems like embedded systems and scripts, 3. Data Structure Oriented Methodology ‘Data structure oriented methodology is generally used for designing data structure. It was evolved by Michael Jackson in the year 1970 which describes how functionality get along with real world. entities. It specifies real world actions, arranging of actions, entities. Data’ structure methodology also called as Jackson structured design progresses its development by categorizing into two steps. ‘Step1: It describes what are the specifications. ‘Step2: It describes how the implementation is performed. ISD is very popular among concurrent softwares, real time software, microcode and parallel computer programming as it focuses more on actions and less, on attributes. Although this methodology appears to be. good for shaping real world scenarios but turns out to be complex and difficult to understand, 4. Object Oriented Methodology Object oriented methodology focuses more on using data instead of funétions real world entities are generally treated as objects. Objects possessing same features are | formed into a class, ‘They include methods and properties. SPECTRUM @LL-IN-ONE JOURNAL FOR ENGINEERING STUDENTS. (a) 2 Methods refers Methods ‘object itself Generally which canbe executed by: : Sach objects possess its own group of methods. ties: Properties refers to the features © omen tnd ree their behavior objects wonted methodology presents three important sncepts namely, abstraction, eneapsulation’ and modularity: ‘This methodology uses Object Oriented Design (GOD) and Object Oriented Analysis (OA). Object Oriented Analysis (OOA): This technique is used to determine the requirements by finding objects and classes, attributes, relationship that exist among them, inheritance relationship. (b) Object Oriented Design (OOD): This technique creates object models and tries to design real world situations into software structure. & Component Based Development Methodology Comiponent based development methodology helps in communication between stakeholders and large scale reuse. It was basically evolved to provide solution 10 application development. It has been evolved from object oriented methodology for system and design analysis purpose. It mainly emphasizes on reuse. Its the main supports cause for cost reduction, flexibility, better quality, scalability. It makes use of reusable independently packaged, large components for software development. ‘This methodology focuses on reuse wherein components display systematic parts which can be stored independently and organized into a new software component fabrication includes different ‘phases like domain analysis, component identification component design integration and testing, acceptance and roll out, deployment. Q3. Define the term Software. Describe its various characteristics. March-t7(Rt3),02(a) OR . Define Software and its characteristics. Answer : Dec.-19(R16), a1(6) Software For answer refer Unit, Page No, 2, QL, Topic: Definitions of Software i eh al Characteristics of Software AA software should be analyzed through various levels of perception. To do this, which it needs to be analyzed by its characteristics, Following are the attributes ofa good software, 1. Customizable Software In order to analyze the customizable software, the user should have a clear distinction between hardware and software manufacturing procedures @) WARNING: Xeros/Photocopying of this book SOFTWARE ENGINEERING [JNTU-HYDERABAD] procedure ch certain digital circuitry is to be built. The process starts by drawing neat sketches and analyzing whether the given design is satisfying the intended specifications or not. Once these are known, the user begin acquiring the req ital circuitry i.c., gates, capacitors etc. Finally testing is performed to complete this process. While closely analyzing the above mentioned scenario it can be concluded that this process contains many reusable facts and very less new facts, But this is not the case during the software development. Here, the given software is first-required to be built and later implemented, so'as to determine its reusability values. It is the recent trend in software engineering process to rely on certain reusable components along with few new components in framing the entire software. 2. “Software Doesn't Wear Out” In order to analyze this characteristic, consider development life cycle of hardware and software. The best mode of comparison is to take various aspects of the graphs during their life cycle (hardware and software) to be perfectly analyzed graph describing various consequences related to the hardware is given below, yeaxis Wear Fate out rate —>Time x-axis Figure (i Graph Depicting the Failure Curve for Hardware Analyzing the curve concludes that during the initial days of manufacturing, the hardware suffers from severe defects. When these failures are eliminatéd, the curve attains a steady success rate. This Success rate does not last longer and many external entities such as, vibration, environmental effects, temperature changes, dust, ete., act as barrier to its prolonged success causing itto wear out steadily. Now, analyze the same aspects of. the software in the following curve. pikes due to high failure rate Actual curve Failure t (deteriorate) rate Ideal curve ——> Time x-axis Figure oftware inyone found guilty is LIABLE to dings. Introduction to Software Engine Th the ideal curve, software initially sufTers from does not get affected unexpected defects. But as software with climatic or other environmental changes as that of hardware, it comes down to a steady success rate by suitably correcting the errors. Till this stage, the ideal gurve remains analogous to the actual curve. Whenever the actual curve is considered, it declines from its initial “UNI failure rate and comes down steadily to. particular point, where it demands certain changes to be applied and leads to the introduction of other defects. Hence, a spike is observed in the curve, Now, efforts are applied to nullify these defects and hence, the spike comes down to a point where it demands change and again the sarne process is repeated which gives rise to other spikes. While change is made to the curve, the main cause of defect remains due tothe changes made to the sofiware to acertain extentand due to the side effects of the software to a larger extent. Hence, with reference to above illustrations it can be concluded that, the “software does not wear out rather it deteriorates”. 3. “Software is Developed or Engineered; it is not Manufactured in the Classical Sense” Development of a software and other hardware involves manpower, but the quantity and the way of approach remain significantly different. In both the ‘manufacturing processes, one will be left out with certain, ‘end products, but, the efforts applied in them remain different, Finally, both the activities are initiated with a determination of-building high quality of products, but, their quality maintaining activities differ. Hence, with these specifications it can be conclude that, “software is developed or engineered, it is not manufactured in the classical sense”. Q4. - Explain the categories of software. OR Discuss about the changing nature of software. (Model Papers, 23() | Nov/Dec. ABR), 2a) oR Elaborate on the changing nature of software in detail. Answer March-17(R13), Q2{b) Following are the broad categories of Software, often referred as applications of software which describe its changing nature, 1. Engineering and Scientific Software Software is being developed to ease the growth in engineering and scientific areas. Engineering and scientific software development requires large area of information tobe covered, For these fields, applications have been developed which cover areas from astronomy to voleanology, molecular 2 ‘Generic View of Process, Process Models 5 iology to automated manufacturing and also from automotive stress analysis to space shuttle orbital dynamics. Now, advanced applications like CAD/CAM, SPSS, MATLABS, etc., have been developed. Web-based Software ‘The software packages have been updated and they can now transfer information on the'web. These packages are used to develop highly sophisticated web based-software that simultaneously eases its usage and also ensures a safe transfer of data over network. Web-based software or applications can be developed, by ising Ianguages or packages like JAVA, C++, Vb.net, CGI, JavaScript, HTML, DHTML etc. Embedded Software Embedded sofiware is developed to control the products under consumer and industrial markets. This software resides in the Read Only Memory (ROM) of the product. This software is developed to perform the limited and the specialized functions of the product. Example: Keypad control ofan air cooler, button control of a washing machine and so on. These software also provide significant functional and control capabilities of the product Artificial Intelligence Software ‘This type of software miakes use of non-numerical algorithms to solve: complex problems, they are not adaptable to computation or direct (straightforward) analysis. One of the. most active artificial intelligence areas is the, “Expert Systems”. Other application areas for AI software includé pattern recognition, theorem proving and game playing. . System Software System Software refers to a piece of software capable of providing services to other applications. Good examples of such software are categorized in two sets. One-of the sets includes file management utilities, compilers, editors etc., and other set includes drivers, operating system, networking software etc. The system software belonging to category-I can easily be applied to quite complex and deterministic applications. On the other hand, category-II can easily be applied to highly non-deterministic applications. Application Software Application software usually resides on a single system capable of satisfying only business requirements and involves managemenvtechnical decision making, ‘SPECTRGM (ILL-IN-ONE JOURNAL FOR ENGINEERING STUDENTS Netsourcing ‘The growth of engineers to look simple as well as mor Thisisbeeause, inte an engine only ating ike an the software internet forced ware forthe developmen fore sophis cated software. ‘et in today’s world, is not but also as the major umes of data source for obi versal Computing, Une oid, the major source of data communi pain the future such circuits can be is ers developing distributed systems, Hence, se gpotcations will also remain a challenge to the software engineets 9, OpenSource Open source is also an expected future development in software where a given software is made available to all users irrespective of their profession. They ean modify it as per their requirements, In this case, the engineers must strive to make the software easily understandable and compatible so that, it can be easily moulded. 10, Product Line Software Software product line is a software that allow systems to share a common set of features satisfying a business need. For example. Mobiles, ‘Smart watch, Laptops can use same version of software. QS. Whatis a legacy software? Explain. (Dec.-19(R16), At(a) | NovDec.-17(R15), Q2{a) | NovDec.-16(R13), 21(a)) oR What is legacy software? Explain briefly its impact in software engineering. NoviDec.-18(R16), a2(a) OR What type of changes is made to legacy systems if it exhibits poor quality? Answer : Legacy Software Legacy Software can be defined as an old soft- ware developed in the past. This software is still being used in the present era as it performs essential business activities. It may include procedures which are-no longer relevant in the newer computing environment. ‘As businéss requirements are dynamic, the legacy soft ‘Ware system undergo continuous modifications. These ‘Modifications make the software adaptable to the new Pusiness requirements and to make it interoperable with the current computing environments. ‘These legacy sofware Problematic ia 0st maintenance and due to WARN ware systems are becoming ee organizations because of their high the difficulties and SOFTWARE ENGINEERING [JNTU-HYDERABAD] ‘encountered while replacing these systems with modem systems. Legacy systems support essential business activities and therefore they are considered as business critical systems. ‘Types of Changes Made to Legacy Systems Re-engineering must be carried out on legacy systems so as to make these systems capable of handling the modem business requirements. This can be done by making the following significant-changes to the legacy systems, ° : Making the Software Adaptable: The software can meet the requirements of new computing, environments, by making the software adaptable to the computing environment. Enhancing the’Software: The characteristic features of software needs to be enhanced so that the software can easily implement the new business requirements. Extending the Software: The software needs to be extended so that it can achieve the interoper- ability feature. Redesigning the Software: The software needs tobe redesigned by making changes to the cxist- ing software soas to make the software operable within a network environment. Explain, why legacy systems evolve as time passes. Answer : Reasons for Legacy Software Evolution Software evolution is an evolutionary process where software is continuously changed over its lifetime in response to changing requirements. This process is carried by ‘change’ and is performed when, @® __ The errors identified are corrected. ‘The software becomes adaptable to new comput- ing environment. ‘The application re-engineering is performed. The following important laws are defined, so as to-get a brief description about the unified theory for software evolution, 1. Continuing Change Law ‘The E-type system software that evolved overtime ‘must be continuously adapted so as to make them implement in real world computing environment. The system is capable of.meeting the custom- ers requirements and satisfying them to the maximum extent only if the system undergoes a continuous modification. Increasing Complexity Law @ (ity ww Qs. Gi) During the evolution process of an E-type system software, the level of complexity increases when no measures are tised forreducing or maintaining Introduction to ‘Self Regulation Law “The process of evolving an regulating with respect to the product d ; tnd process measures Its vale fs approximately equal to the normal value, Conservation of Organizational Stabili activity rate is constant over the type system is UNT -aype system is self tribution ity Law ‘The average lifetime of a proxiuet when an being evolved. & Conservation of Familiarity Law When an Extype system is being evolved, it is necessary to ensure that all the members ( developers, sales personnel, users) responsible for performing the system evolution must maintain the entire information about the evolution pro- cess. They should also track the behavior using which a satisfactory evolution is achieved. 6 Continuing Growth Law ‘The functionality of an E-type system must increase continuously over the lifetime of the system in response to the customers requirements. 7. Declining Quality Law ‘The quality of an E-type system will be degraded. if the software system doesn’t undergo continu- ‘ous modification. Due to this, the system fails to meet the requirements of new computing environ- ments. 8. Feedback System Law The evolution process of an E-type system comprises of feedback systems with multilevel, multiloop, multiagent feature, It is necessary to- have such feedback systems for improving the performance ofthe software, Q7. What are the challenges of software en- gineering? ; Answer: Sep24(R12), a1(b) Some of the challenges of software engineering are as follows, 1, — Problem Understanding The objectives oraimof the problem understanding is to know and understand the requirements of the clients and Users as the client and users may be completely aware of the new systems requirements, Similarly even software engineers may not have complete information Of all application domain, The main cause of problem ee nites engineers. and customers is lack of ene ication. Thus, it is necessary for an engineer to cae. io explain the requirements clearly 1 the customer ‘en if they known then’, Software Engineering, A Generic Viow 0! "TO —————s8 Models ime and Cost jomers prefers software prod consume reduce amount of cycle tine Therefore software engineers focuses on nin Sot cycle time and products cost, Customers demang 8 delivery in less time because ofthe competitin Pott s0 software engineer try hard to deliver ye 2, on time which ean some times result into ie oe product. ly, 8 ity : thy re and Software in 8 Whigg The cost of software is'ret some resources like manpower, ie saat ot sererally, the cost of developing asoftwarerequny number of labours and is measured in terms at es OF monihs. Cost of product varies for different projec, instance ifthe size ofthe project is large and corpse then it consumers more cycle time. There exist few 6. factors due to which time and cost may get effected li level of technology, availability of resource application, by experience. Proper planing can minimize the cost and w. time of a project. & 3. Reliability th Itrefers to the property of satisfying the software *! requirements effectively. It is an important characteristics of high quality software. Product quality can be attained © by focusing on the development phases like design, coding and testing carefully. Verification and validation techniques are used in order to detect defects in the intial stages development. Unreliability deals with the presence of defects that are seen in the’software. Complexity in the 7 project leads to development of unreliability. Unreliable software caused many failures in the year 1989 like. ° @ 22 fatal crashés took place by wire UH-6 F Pp s¢ 7 helicopter « Gi) Numerous patients died to the malfunctioning of © hospital computers, . 4 Usabi and Reusability f Usability is defined as a process for software il development that helps to easily understand the user & needs and obtains direct user feedback in overall ¢ development of life cycle..It ensures the strategy of software systems that satisfies the need of user in various i environment in order to reduce costs and complexities. Software engineering focuses on using usability engineering’ approaches. Reusability is an important characteristic of a high quality software. Itis defined as ‘degree to which software modules or work product can ‘be used in more than one computing program or software, Now-a-days reuse of existing software has become very Popular in software industry and institutional business. But there are many challenges faced by reuse business like analysis of domain knowledge, development of reusable library, integration of reusable Components. It has got many benefits if systematic approach is used Reusability is mainly used for increasing-productivity, ity and ro ity within a software.

You might also like