CSC 303 Software Engineering 1 Chapter 1 PDF

Document Details

Uploaded by Deleted User

Joannah Claire J. Alforque

Tags

software engineering software evolution paradigms computer science

Summary

This document provides an overview of software engineering concepts. It explains different software types, software evolution laws, and software development paradigms. The document also highlights the characteristics of good software.

Full Transcript

CSC 303 SOFTWARE ENGINEERING 1 MS. JOANNAH CLAIRE J. ALFORQUE INSTRUCTOR What is a Software? SOFTWARE Software is a collection of executable programming code, associated libraries and documentations. A program is an executable code, which serves some computational pur...

CSC 303 SOFTWARE ENGINEERING 1 MS. JOANNAH CLAIRE J. ALFORQUE INSTRUCTOR What is a Software? SOFTWARE Software is a collection of executable programming code, associated libraries and documentations. A program is an executable code, which serves some computational purpose. Software, when made for a specific requirement is called a software product. What is Engineering? Engineering Engineering on the other hand, is all about developing products, using well defined, scientific principles and methods Software Engineering Software engineering is an engineering branch associated with development of software product using well-defined scientific principles, methods and procedures. The outcome of software engineering is an efficient and reliable software product. Software Evolution The process of developing a software product using software engineering principles and methods is referred to as Software Evolution. This includes the initial development of software and its maintenance and updates, till desired software product is developed, which satisfies the expected requirements. Software Evolution Laws Lehman has given laws for software evolution. He divided the software into three different categories: Static-type (S-type) Practical-type (P-type) Embedded-type (E-type) Static-type (S-type) Static-type (S-type) software is characterized by its static nature, meaning it does not change or adapt in response to different conditions. Key Features: Examples: Fixed Functionality: Operates Legacy Applications: Older business with a predetermined set of systems or desktop applications. functions. Certain Utilities: Tools with specific, Infrequent Updates: Updates and unchanging functions. changes are rare or non-existent. Usage Context: Legacy Systems: Often includes Suitable for environments where older applications or systems with stability and consistency are established behavior. prioritized over adaptability. Practical-type (P-type) This is a software with a collection of procedures. This is defined by exactly what procedures can do. In this software, the specifications can be described but the solution is not obviously instant. For example, gaming software. This software works closely as the requirement of real-world environment. This software has a Embedded-type high degree of evolution as there are various (E-type) changes in laws, taxes etc. in the real world situations. For example, Online trading software. E-Type software evolution Type software evolution: 1. Continuing change - An E-type software system must continue to adapt to the real world changes, else it becomes progressively less useful. 2. Increasing complexity - As an E-type software system evolves, its complexity tends to increase unless work is done to maintain or reduce it. 3. Conservation of familiarity - The familiarity with the software or the knowledge about how it was developed, why was it developed in that particular manner etc., must be retained at any cost, to implement the changes in the system. 4. Continuing growth- In order for an E- type system intended to resolve some business problem, its size of implementing the changes grows according to the lifestyle changes of the business. 5. Reducing quality - An E-type software system declines in quality unless rigorously maintained and adapted to a changing operational environment. 6. Feedback systems- The E-type software systems constitute multi-loop, multi-level feedback systems and must be treated as such to be successfully modified or improved. 7. Self-regulation - E-type system evolution processes are self-regulating with the distribution of product and process measures close to normal. 8. Organizational stability - The average effective global activity rate in an evolving E-type system is invariant over the lifetime of the product. Software Paradigms Software paradigms refer to the methods and steps, which are taken while designing the software. There are many methods proposed and are implemented. Programming paradigm is a subset of software design paradigm which is further a subset of software development paradigm. Software Development Paradigm It consists of – Requirement gathering Software design Programming Software Design Paradigm This paradigm is a part of Software Development and includes – Design Maintenance Programming Programming Paradigm This paradigm is related closely to programming aspect of software development. This includes – Coding Testing Integration Need of Software Engineering Large Software Scalability Cost Dynamic Nature Quality Management Characteristics of Good Software A software product can be judged by what it offers and how well it can be used. This software must satisfy on the following grounds: Operational Transitional Maintenance Operational Characteristics can be measured on: Budget Usability Efficiency Correctness Functionality Dependability Security Safety Transitional Aspect from one platform to another: Portability Interoperability Reusability Adaptability Maintenance Aspect how well the software capabilities: Modularity Maintainability Flexibility Scalability “Software engineering is a branch of computer science, which uses well-defined engineering concepts required to produce efficient, durable, scalable, in budget, and on-time software products” End of Chapter 1

Use Quizgecko on...
Browser
Browser