The document provides information about a course on software engineering taught by Dr. P. Visu at Velammal Engineering College. It includes the course objectives, outcomes, syllabus, textbooks and references. The objectives are to understand software project phases, requirements engineering, object-oriented concepts, enterprise integration and various testing and project management techniques. The outcomes cover comparing process models, formulating requirements engineering concepts, understanding object-oriented fundamentals, applying software design systematically, and evaluating project schedules and costs. The syllabus covers topics like software processes, requirements analysis, object-oriented concepts, software design, and testing and management over 5 units.
This document discusses pulse code modulation (PCM). PCM is a method of digitally representing sampled analog signals by assigning numeric codes to amplitude levels. It involves sampling an analog signal, quantizing the samples to discrete levels, and encoding the levels digitally. The digital signal consists of blocks of bits that represent the amplitude of each PCM pulse. PCM is commonly used in digital audio, video, and telephone systems due to its ability to transmit analog signals digitally over long distances with inexpensive digital circuitry.
An introduction to digital signal processors 1Hossam Hassan
This document provides an introduction to digital signal processors (DSPs). It discusses the history and evolution of computers and microprocessors. DSPs were introduced in 1983 and were specifically designed for digital signal processing applications like telecommunications. The document outlines the system architecture of DSPs and discusses Von Neumann and Harvard architectures. It also covers criteria for choosing a microprocessor, including instruction set functionality, architecture, speed, and power consumption. Building blocks of embedded systems like the microprocessor, memory, peripherals, and bus system are described.
Introduction to Steering behaviours for Autonomous AgentsBryan Duggan
Steering behaviours are simple techniques for controlling
goal-directed motion of simulated characters around their world, with
applications in games, animation and robotics.
These behaviours are largely independent of each other and can be combined together to implement actions such as "go from this part of world to another part of the world, avoiding any obstacles that happen to be in the way".
Steering behaviours are used to simulate natural phenomena such as
shoals of fish, flocks of birds and crowd scenes.
The document discusses the architecture of embedded computing systems. It describes typical hardware components like the CPU, bus, memory, and I/O devices. It also discusses common bus types, hardware design using evaluation boards, and development/debugging techniques using a host PC connected to the target system. Debugging tools can include a cross compiler, cross debugger, LEDs, an in-circuit emulator, logic analyzer, and serial port tools.
The document describes a study and performance analysis of the Modified Gate Diffusion Input (MGDI) technique. It provides details on MGDI logic, including how it overcomes limitations of the Gate Diffusion Input (GDI) technique. Various logic gates and circuits like full adders, flip-flops, and finite state machines are designed using MGDI. Simulation results show that MGDI outperforms GDI and traditional CMOS logic in terms of transistor count, power dissipation, and delay. While self-resetting logic has higher transistor count and power, it provides an alternative to dynamic logic by removing the need for a global clock.
This document outlines the schedule and content for a short term training program on FPGA-based digital systems. The program will cover topics on digital design with FPGAs through lectures, hands-on lab sessions, assignments, and extra classes. It will also include case studies and quizzes. The schedule lists the daily activities over two days, including introductions, labs, and discussions in designated rooms.
This document discusses pulse code modulation (PCM). PCM is a method of digitally representing sampled analog signals by assigning numeric codes to amplitude levels. It involves sampling an analog signal, quantizing the samples to discrete levels, and encoding the levels digitally. The digital signal consists of blocks of bits that represent the amplitude of each PCM pulse. PCM is commonly used in digital audio, video, and telephone systems due to its ability to transmit analog signals digitally over long distances with inexpensive digital circuitry.
An introduction to digital signal processors 1Hossam Hassan
This document provides an introduction to digital signal processors (DSPs). It discusses the history and evolution of computers and microprocessors. DSPs were introduced in 1983 and were specifically designed for digital signal processing applications like telecommunications. The document outlines the system architecture of DSPs and discusses Von Neumann and Harvard architectures. It also covers criteria for choosing a microprocessor, including instruction set functionality, architecture, speed, and power consumption. Building blocks of embedded systems like the microprocessor, memory, peripherals, and bus system are described.
Introduction to Steering behaviours for Autonomous AgentsBryan Duggan
Steering behaviours are simple techniques for controlling
goal-directed motion of simulated characters around their world, with
applications in games, animation and robotics.
These behaviours are largely independent of each other and can be combined together to implement actions such as "go from this part of world to another part of the world, avoiding any obstacles that happen to be in the way".
Steering behaviours are used to simulate natural phenomena such as
shoals of fish, flocks of birds and crowd scenes.
The document discusses the architecture of embedded computing systems. It describes typical hardware components like the CPU, bus, memory, and I/O devices. It also discusses common bus types, hardware design using evaluation boards, and development/debugging techniques using a host PC connected to the target system. Debugging tools can include a cross compiler, cross debugger, LEDs, an in-circuit emulator, logic analyzer, and serial port tools.
The document describes a study and performance analysis of the Modified Gate Diffusion Input (MGDI) technique. It provides details on MGDI logic, including how it overcomes limitations of the Gate Diffusion Input (GDI) technique. Various logic gates and circuits like full adders, flip-flops, and finite state machines are designed using MGDI. Simulation results show that MGDI outperforms GDI and traditional CMOS logic in terms of transistor count, power dissipation, and delay. While self-resetting logic has higher transistor count and power, it provides an alternative to dynamic logic by removing the need for a global clock.
This document outlines the schedule and content for a short term training program on FPGA-based digital systems. The program will cover topics on digital design with FPGAs through lectures, hands-on lab sessions, assignments, and extra classes. It will also include case studies and quizzes. The schedule lists the daily activities over two days, including introductions, labs, and discussions in designated rooms.
Introduction to Systems with Examples and Introduction to Embedded Systems, History, Advantages, Applications, Classifications,What is inside Embedded System, Architecture, Features and Languages used in Embedded Systems advantages and disadvantages
B sc cs i bo-de u-iii combitional logic circuitRai University
This document provides an overview of digital electronics, focusing on logic circuits and combinational logic circuits. It discusses the basics of combinational logic, including standard combinational circuits like adders, subtractors, and multiplexers. It also covers the analysis and design of combinational logic, including examples like a magnitude comparator. Finally, it discusses common combinational logic components like decoders, multiplexers, and full adders.
A 16-bit microprocessor I designed during my final semester (2005) of my Bachelor of Technology program. The microprocessor circuitry design was coded in VHDL and then configured in a Xilinx XC9572 PC84 CPLD kit. Most of the design, the architecture and the instruction set were taken from Computer System Architecture (3rd ed.) by M. Morris Mano. See https://github.com/susam/mano-cpu for VHDL source code and other related files.
The document discusses information theory concepts such as entropy, channel capacity, and linear block codes. It introduces entropy as a measure of information and average information rate. Channel capacity for additive white Gaussian noise channels is defined as a function of signal-to-noise ratio and bandwidth. Finally, it provides an overview of linear block codes, including encoding using a generator matrix and transmitting codewords over the channel.
to transfer data in network from one device to another with acceptable accuracy, so the system must guarantee the transmitted data should be identical to received data.
there should be no errors if any error occurs in how many ways it can be detected and corrected
The document provides an introduction and getting started guide for the Proteus Design Suite. It includes information about copyright, warnings regarding copying and licensing, and disclaimers of warranty. The table of contents outlines tutorials for schematic capture and PCB layout, and sections on library parts, creating new devices, and preparation for board fabrication.
Information Theory and Coding Question Bankmiraclebabu
This document contains the question bank for the subject "IT2302-Information Theory and coding" taught in the fifth semester at VELAMMAL College of Engineering and Technology. It has two parts - Part A contains short answer questions to test basic conceptual understanding, while Part B contains numerical problems and explanations to evaluate students' ability to apply concepts. The questions cover all five units of the syllabus including topics like source and channel coding theorems, entropy, Huffman coding, linear block codes, cyclic codes, convolutional codes etc.
Turbo codes are a type of error correcting code that can achieve performance close to the theoretical maximum allowed by Shannon's limit. Turbo codes use an iterative decoding process between two recursive systematic convolutional encoders separated by an interleaver. This iterative decoding allows turbo codes to correct errors very efficiently. Turbo codes are used in applications like deep space communications and mobile phone networks due to their ability to operate reliably at low signal-to-noise ratios.
This document provides an overview of Reed Solomon codes. It begins with the objectives to implement an encoder and decoder for Reed Solomon codes using MATLAB. It then introduces error control mechanisms like forward error correction and automatic repeat request. Various error detection and correction techniques are discussed, including Hamming codes and Reed Solomon codes. Reed Solomon codes are explained in detail, including how they are represented, encoded, and decoded to correct errors. Applications of Reed Solomon codes in storage, wireless communication, satellite, and digital television are also mentioned.
Sample calculation questions in data communications (1)Mauricio Raul
This document contains sample calculation questions related to networking and data transmission. It includes questions about:
- Calculating the bit rate of a webcam transmitting video frames over a network.
- Determining the maximum message size that can be transmitted over a token ring network within a given time frame.
- Calculating the bit rate required to transmit an animated GIF with a given number of frames and resolution in under 2 seconds.
- Calculating propagation delays for signals transmitted between sites on Earth via a geostationary satellite orbiting 3574 km above the Earth's surface.
3Sem-Logic Design Notes-Unit4-Design and Analysis of Combinational LogicDr. Shivananda Koteshwar
The document discusses digital multiplexers and their use in combinational logic design. It describes how multiplexers work as switches to select one of several input lines and direct it to the output based on the selection lines. Specifically, it covers 2-to-1 and 4-to-1 multiplexers, how they can be used together in parallel to multiplex multiple bits, and common integrated circuits used for multiplexing like the 74xx153 dual 4-to-1 mux. The document also provides truth tables and diagrams to illustrate multiplexer design and applications in boolean function generation and digital systems.
CMOS FABRICATION
For less power dissipation requirement CMOS technology is used for implementing transistors. If we require a faster circuit then transistors are implemented over IC using BJT . Fabrication of CMOS transistors as IC’s can be done in three different methods.
The N-well / P-well technology, where n-type diffusion is done over a p-type substrate or p-type diffusion is done over n-type substrate respectively.
P-WELL PROCESS
The fabrication steps of p well process are same as that of an n-well process except that instead of n-well a p-well is implanted . The process steps involved in p-well process are shown in Figure below. The process starts with the n type substrate
This document contains 27 multiple choice questions regarding number systems, Boolean algebra, logic gates and digital circuits. The questions cover topics such as binary, hexadecimal and decimal conversions; Boolean expressions and logic functions; logic gates; and basic digital circuits. Sample questions include the decimal equivalent of a binary number, Boolean expressions for logic functions, minimum number of gates needed for an implementation, and output waveforms of simple circuits.
The document contains MATLAB scripts for simulating different digital modulation schemes:
1) A binary amplitude-shift keying (ASK) script that generates a random bit stream and maps 0s and 1s to different amplitude levels to create a modulated signal.
2) A binary frequency-shift keying (FSK) script that maps 0s and 1s to different frequency tones and sums the tones to create the modulated signal.
3) A binary phase-shift keying (PSK) script that maps 0s and 1s to different phase shifts, adds noise, and calculates the bit error rate for varying signal-to-noise ratios.
Advanced computer architecture lesson 1 and 2Ismail Mukiibi
An OS is a program that controls the execution of application programs and acts as an interface between the user of a computer and the computer hardware. .....................
Arduinos use serial ports for communicating with computers and other devices. The USB port of an Arduino is used for serial communication with a computer, with the added advantage that USB can also be used to power the device. USB also has the advantage of auto-configuring most of the parameters.
Data Communication & Computer Networks:Digital Signal EncodingDr Rajiv Srivastava
These slides cover the fundamentals of data communication & networking. It covers Digital signal Encoding which are used in communication of data over transmission medium. it is useful for engineering students & also for the candidates who want to master data communication & computer networking.
The document provides an overview of software engineering concepts including definitions of software, characteristics of good software, and the software engineering process. It discusses that software engineering aims to apply systematic and disciplined approaches to software development and maintenance to economically produce reliable and efficient software. The document also outlines key activities in a generic software process framework including communication, planning, modeling, construction, and deployment.
The document provides an overview of software engineering concepts. It defines software and its key characteristics, such as being developed rather than manufactured. It discusses different types of software applications and attributes of good software like maintainability and dependability. The document also outlines the activities in a generic software process, including communication, planning, modeling, construction, and deployment. It emphasizes that the process should be adapted to each project's specific needs.
Introduction to Systems with Examples and Introduction to Embedded Systems, History, Advantages, Applications, Classifications,What is inside Embedded System, Architecture, Features and Languages used in Embedded Systems advantages and disadvantages
B sc cs i bo-de u-iii combitional logic circuitRai University
This document provides an overview of digital electronics, focusing on logic circuits and combinational logic circuits. It discusses the basics of combinational logic, including standard combinational circuits like adders, subtractors, and multiplexers. It also covers the analysis and design of combinational logic, including examples like a magnitude comparator. Finally, it discusses common combinational logic components like decoders, multiplexers, and full adders.
A 16-bit microprocessor I designed during my final semester (2005) of my Bachelor of Technology program. The microprocessor circuitry design was coded in VHDL and then configured in a Xilinx XC9572 PC84 CPLD kit. Most of the design, the architecture and the instruction set were taken from Computer System Architecture (3rd ed.) by M. Morris Mano. See https://github.com/susam/mano-cpu for VHDL source code and other related files.
The document discusses information theory concepts such as entropy, channel capacity, and linear block codes. It introduces entropy as a measure of information and average information rate. Channel capacity for additive white Gaussian noise channels is defined as a function of signal-to-noise ratio and bandwidth. Finally, it provides an overview of linear block codes, including encoding using a generator matrix and transmitting codewords over the channel.
to transfer data in network from one device to another with acceptable accuracy, so the system must guarantee the transmitted data should be identical to received data.
there should be no errors if any error occurs in how many ways it can be detected and corrected
The document provides an introduction and getting started guide for the Proteus Design Suite. It includes information about copyright, warnings regarding copying and licensing, and disclaimers of warranty. The table of contents outlines tutorials for schematic capture and PCB layout, and sections on library parts, creating new devices, and preparation for board fabrication.
Information Theory and Coding Question Bankmiraclebabu
This document contains the question bank for the subject "IT2302-Information Theory and coding" taught in the fifth semester at VELAMMAL College of Engineering and Technology. It has two parts - Part A contains short answer questions to test basic conceptual understanding, while Part B contains numerical problems and explanations to evaluate students' ability to apply concepts. The questions cover all five units of the syllabus including topics like source and channel coding theorems, entropy, Huffman coding, linear block codes, cyclic codes, convolutional codes etc.
Turbo codes are a type of error correcting code that can achieve performance close to the theoretical maximum allowed by Shannon's limit. Turbo codes use an iterative decoding process between two recursive systematic convolutional encoders separated by an interleaver. This iterative decoding allows turbo codes to correct errors very efficiently. Turbo codes are used in applications like deep space communications and mobile phone networks due to their ability to operate reliably at low signal-to-noise ratios.
This document provides an overview of Reed Solomon codes. It begins with the objectives to implement an encoder and decoder for Reed Solomon codes using MATLAB. It then introduces error control mechanisms like forward error correction and automatic repeat request. Various error detection and correction techniques are discussed, including Hamming codes and Reed Solomon codes. Reed Solomon codes are explained in detail, including how they are represented, encoded, and decoded to correct errors. Applications of Reed Solomon codes in storage, wireless communication, satellite, and digital television are also mentioned.
Sample calculation questions in data communications (1)Mauricio Raul
This document contains sample calculation questions related to networking and data transmission. It includes questions about:
- Calculating the bit rate of a webcam transmitting video frames over a network.
- Determining the maximum message size that can be transmitted over a token ring network within a given time frame.
- Calculating the bit rate required to transmit an animated GIF with a given number of frames and resolution in under 2 seconds.
- Calculating propagation delays for signals transmitted between sites on Earth via a geostationary satellite orbiting 3574 km above the Earth's surface.
3Sem-Logic Design Notes-Unit4-Design and Analysis of Combinational LogicDr. Shivananda Koteshwar
The document discusses digital multiplexers and their use in combinational logic design. It describes how multiplexers work as switches to select one of several input lines and direct it to the output based on the selection lines. Specifically, it covers 2-to-1 and 4-to-1 multiplexers, how they can be used together in parallel to multiplex multiple bits, and common integrated circuits used for multiplexing like the 74xx153 dual 4-to-1 mux. The document also provides truth tables and diagrams to illustrate multiplexer design and applications in boolean function generation and digital systems.
CMOS FABRICATION
For less power dissipation requirement CMOS technology is used for implementing transistors. If we require a faster circuit then transistors are implemented over IC using BJT . Fabrication of CMOS transistors as IC’s can be done in three different methods.
The N-well / P-well technology, where n-type diffusion is done over a p-type substrate or p-type diffusion is done over n-type substrate respectively.
P-WELL PROCESS
The fabrication steps of p well process are same as that of an n-well process except that instead of n-well a p-well is implanted . The process steps involved in p-well process are shown in Figure below. The process starts with the n type substrate
This document contains 27 multiple choice questions regarding number systems, Boolean algebra, logic gates and digital circuits. The questions cover topics such as binary, hexadecimal and decimal conversions; Boolean expressions and logic functions; logic gates; and basic digital circuits. Sample questions include the decimal equivalent of a binary number, Boolean expressions for logic functions, minimum number of gates needed for an implementation, and output waveforms of simple circuits.
The document contains MATLAB scripts for simulating different digital modulation schemes:
1) A binary amplitude-shift keying (ASK) script that generates a random bit stream and maps 0s and 1s to different amplitude levels to create a modulated signal.
2) A binary frequency-shift keying (FSK) script that maps 0s and 1s to different frequency tones and sums the tones to create the modulated signal.
3) A binary phase-shift keying (PSK) script that maps 0s and 1s to different phase shifts, adds noise, and calculates the bit error rate for varying signal-to-noise ratios.
Advanced computer architecture lesson 1 and 2Ismail Mukiibi
An OS is a program that controls the execution of application programs and acts as an interface between the user of a computer and the computer hardware. .....................
Arduinos use serial ports for communicating with computers and other devices. The USB port of an Arduino is used for serial communication with a computer, with the added advantage that USB can also be used to power the device. USB also has the advantage of auto-configuring most of the parameters.
Data Communication & Computer Networks:Digital Signal EncodingDr Rajiv Srivastava
These slides cover the fundamentals of data communication & networking. It covers Digital signal Encoding which are used in communication of data over transmission medium. it is useful for engineering students & also for the candidates who want to master data communication & computer networking.
The document provides an overview of software engineering concepts including definitions of software, characteristics of good software, and the software engineering process. It discusses that software engineering aims to apply systematic and disciplined approaches to software development and maintenance to economically produce reliable and efficient software. The document also outlines key activities in a generic software process framework including communication, planning, modeling, construction, and deployment.
The document provides an overview of software engineering concepts. It defines software and its key characteristics, such as being developed rather than manufactured. It discusses different types of software applications and attributes of good software like maintainability and dependability. The document also outlines the activities in a generic software process, including communication, planning, modeling, construction, and deployment. It emphasizes that the process should be adapted to each project's specific needs.
Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models – Introduction to Agility – Agile process – Extreme programming – XP process - Estimation-FP,LOC and COCOMO I and II,Risk Management, Project Scheduling.
The document provides an overview of software engineering concepts including definitions of software and software engineering. It discusses the importance of software and characteristics that make it different than other engineered products. The document also outlines some common software applications and categories. It defines the key activities in a generic software process including communication, planning, modeling, construction, and deployment. Finally, it provides examples of two case studies - an embedded system in an insulin pump and a patient information system for mental health care.
This document provides an overview of key concepts in the field of software engineering. It defines software engineering as the application of systematic and disciplined approaches to software development, operation, and maintenance. The document discusses the importance of software engineering in producing reliable and economical software. It also summarizes essential attributes of good software such as maintainability, dependability, efficiency, and acceptability. Additionally, the document outlines a generic software engineering process framework involving activities like communication, planning, modeling, construction, and deployment. It notes that the process should be adapted to the specific project.
This document provides an overview of software and software engineering. It defines software, discusses why software is important to modern economies, and outlines some key characteristics of software such as its non-physical nature and tendency to deteriorate over time rather than wear out. The document also introduces common software applications, categories, and costs. Finally, it discusses the importance of software engineering in developing reliable, high-quality software economically.
This document provides an overview of software and software engineering. It defines software, discusses why software is important, and explores key software engineering concepts like the software development process, process models, case studies, and requirements. Specifically, it defines software, explains that software engineering aims to produce reliable software economically, and discusses the importance of processes and methods in software development.
Introduction to software engineering
Software products
Why Software is Important?
Software costs
Features of Software?
Software Applications
Software—New Categories
Software Engineering
Importance of Software Engineering
Essential attributes / Characteristics of good software
Software Components
Software Process
Five Activities of a Generic Process framework
Relative Costs of Fixing Software Faults
Software Qualities
Software crisis
Software Development Stages/SDLC
What is Software Verification
Advantages of Software Verification
Advantages of Validation
Week_01-Intro to Software Engineering-1.ppt23017156038
This document provides an overview of software engineering concepts including definitions of software and software engineering. It discusses the importance of software and different types of software applications. The document also introduces a generic software engineering process framework consisting of communication, planning, modeling, construction, and deployment activities. Finally, it provides examples of an embedded insulin pump control system and a patient information system for mental health care to illustrate software engineering concepts and processes.
Unit 1 importance ofsoftengg_b.tech iii yearPreeti Mishra
Here are some key points from Unit 1:
- Software is computer programs, data structures, and documentation. Software engineering is the systematic development and maintenance of software.
- A software process provides a framework for development activities like communication, planning, modeling, construction and deployment. It establishes quality practices.
- Legacy software supports core functions but is outdated, poorly designed and documented. It is costly to replace but also to maintain.
- Common software myths include thinking requirements can change freely, documentation is unnecessary, or that quality is only important after coding. These undermine good practices.
- A process framework provides structure while methods and tools support specific technical tasks. Processes must balance control and flexibility for different projects.
Unit 1 introduction tosoftengg_mba tech ii yearPreeti Mishra
This document provides an introduction to software engineering. It defines software and discusses different categories of software products. It explains that software engineering is concerned with developing software using systematic and disciplined approaches. The document outlines important attributes of good software such as maintainability, dependability, efficiency and acceptability. It also discusses challenges with legacy software systems and reasons for evolving legacy systems. Finally, it covers key tasks for software project planning such as establishing scope, feasibility analysis, risk analysis, resource estimation, and developing a project schedule.
Evolution of software; Characteristics of software; Software applications; Components of software; Software myths; Software problems; Software reuse; Overview of risk management; Process visibility; Professional responsibility.
The document outlines a syllabus for a software engineering course. The syllabus covers 5 units: introduction to software engineering processes and models; agile software development and requirements engineering; system modeling; architectural design; and software testing. It also lists course objectives, outcomes, textbooks, and assessment methodologies. The key topics covered include software processes, agile development, requirements specification, system modeling, architectural design, object-oriented design, and software testing.
This document provides an overview of a software engineering course. It discusses key topics that will be covered in the course including software processes, agile development, requirements engineering, system modeling, architectural design, testing and evolution. It outlines the course objectives of providing an introduction to important software engineering concepts. It also discusses different types of software applications and the diversity of techniques used for different applications. Finally, it covers software engineering fundamentals that apply across all application types.
This document provides an introduction to software engineering. It defines software as a set of instructions that provide desired functions when executed. Engineering is defined as applying scientific methods to construct, operate, modify and maintain useful devices and systems. Software engineering then applies technologies and practices from computer science, project management, and other fields to the design, development and documentation of software. Some key characteristics of software discussed are that it is developed rather than manufactured, can be easily modified and reproduced, and does not wear out. The document also outlines various types of software applications and discusses software engineering as a layered technology with foundations in quality focus, processes, methods and tools. Finally, it addresses some common software myths from management, customer, and practitioner perspectives.
Java learn from basic part chapter_01 short notes to understand the java quic...GaytriMate
Software is the set of instructions and data that enable computers to function. It encompasses computer programs, data storage, and documentation. There are different types of software including generic products sold broadly and customized products tailored for specific customers. Software engineering aims to develop software through systematic, disciplined processes to produce reliable and efficient software economically. It involves layers of process, methods, tools, and a quality focus. A generic software process framework includes activities like communication, planning, modeling, construction, and deployment managed through umbrella activities.
This document provides an introduction to a course on software engineering. It discusses key topics that will be covered in the course including software process models, requirement engineering, software design, quality engineering, project management, and maintenance. It also outlines the course structure, learning outcomes, assessment criteria, and references. The course aims to introduce students to fundamental software engineering principles and practices.
The document discusses software process models. It describes the waterfall model, which is a generic process framework for software engineering that defines five framework activities: communication, planning, modeling, construction, and deployment. It also discusses umbrella activities that are applied throughout the process, such as project tracking and control. The waterfall model prescribes distinct activities, actions, tasks, milestones, and work products for software development. However, process models need to be adapted to meet the needs of specific projects.
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...University of Maribor
Slides from talk presenting:
Aleš Zamuda: Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapter and Networking.
Presentation at IcETRAN 2024 session:
"Inter-Society Networking Panel GRSS/MTT-S/CIS
Panel Session: Promoting Connection and Cooperation"
IEEE Slovenia GRSS
IEEE Serbia and Montenegro MTT-S
IEEE Slovenia CIS
11TH INTERNATIONAL CONFERENCE ON ELECTRICAL, ELECTRONIC AND COMPUTING ENGINEERING
3-6 June 2024, Niš, Serbia
Advanced control scheme of doubly fed induction generator for wind turbine us...IJECEIAES
This paper describes a speed control device for generating electrical energy on an electricity network based on the doubly fed induction generator (DFIG) used for wind power conversion systems. At first, a double-fed induction generator model was constructed. A control law is formulated to govern the flow of energy between the stator of a DFIG and the energy network using three types of controllers: proportional integral (PI), sliding mode controller (SMC) and second order sliding mode controller (SOSMC). Their different results in terms of power reference tracking, reaction to unexpected speed fluctuations, sensitivity to perturbations, and resilience against machine parameter alterations are compared. MATLAB/Simulink was used to conduct the simulations for the preceding study. Multiple simulations have shown very satisfying results, and the investigations demonstrate the efficacy and power-enhancing capabilities of the suggested control system.
6th International Conference on Machine Learning & Applications (CMLA 2024)ClaraZara1
6th International Conference on Machine Learning & Applications (CMLA 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of on Machine Learning & Applications.
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSIJNSA Journal
The smart irrigation system represents an innovative approach to optimize water usage in agricultural and landscaping practices. The integration of cutting-edge technologies, including sensors, actuators, and data analysis, empowers this system to provide accurate monitoring and control of irrigation processes by leveraging real-time environmental conditions. The main objective of a smart irrigation system is to optimize water efficiency, minimize expenses, and foster the adoption of sustainable water management methods. This paper conducts a systematic risk assessment by exploring the key components/assets and their functionalities in the smart irrigation system. The crucial role of sensors in gathering data on soil moisture, weather patterns, and plant well-being is emphasized in this system. These sensors enable intelligent decision-making in irrigation scheduling and water distribution, leading to enhanced water efficiency and sustainable water management practices. Actuators enable automated control of irrigation devices, ensuring precise and targeted water delivery to plants. Additionally, the paper addresses the potential threat and vulnerabilities associated with smart irrigation systems. It discusses limitations of the system, such as power constraints and computational capabilities, and calculates the potential security risks. The paper suggests possible risk treatment methods for effective secure system operation. In conclusion, the paper emphasizes the significant benefits of implementing smart irrigation systems, including improved water conservation, increased crop yield, and reduced environmental impact. Additionally, based on the security analysis conducted, the paper recommends the implementation of countermeasures and security approaches to address vulnerabilities and ensure the integrity and reliability of the system. By incorporating these measures, smart irrigation technology can revolutionize water management practices in agriculture, promoting sustainability, resource efficiency, and safeguarding against potential security threats.
Low power architecture of logic gates using adiabatic techniquesnooriasukmaningtyas
The growing significance of portable systems to limit power consumption in ultra-large-scale-integration chips of very high density, has recently led to rapid and inventive progresses in low-power design. The most effective technique is adiabatic logic circuit design in energy-efficient hardware. This paper presents two adiabatic approaches for the design of low power circuits, modified positive feedback adiabatic logic (modified PFAL) and the other is direct current diode based positive feedback adiabatic logic (DC-DB PFAL). Logic gates are the preliminary components in any digital circuit design. By improving the performance of basic gates, one can improvise the whole system performance. In this paper proposed circuit design of the low power architecture of OR/NOR, AND/NAND, and XOR/XNOR gates are presented using the said approaches and their results are analyzed for powerdissipation, delay, power-delay-product and rise time and compared with the other adiabatic techniques along with the conventional complementary metal oxide semiconductor (CMOS) designs reported in the literature. It has been found that the designs with DC-DB PFAL technique outperform with the percentage improvement of 65% for NOR gate and 7% for NAND gate and 34% for XNOR gate over the modified PFAL techniques at 10 MHz respectively.
Introduction- e - waste – definition - sources of e-waste– hazardous substances in e-waste - effects of e-waste on environment and human health- need for e-waste management– e-waste handling rules - waste minimization techniques for managing e-waste – recycling of e-waste - disposal treatment methods of e- waste – mechanism of extraction of precious metal from leaching solution-global Scenario of E-waste – E-waste in India- case studies.
Literature Review Basics and Understanding Reference Management.pptxDr Ramhari Poudyal
Three-day training on academic research focuses on analytical tools at United Technical College, supported by the University Grant Commission, Nepal. 24-26 May 2024
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesChristina Lin
Traditionally, dealing with real-time data pipelines has involved significant overhead, even for straightforward tasks like data transformation or masking. However, in this talk, we’ll venture into the dynamic realm of WebAssembly (WASM) and discover how it can revolutionize the creation of stateless streaming pipelines within a Kafka (Redpanda) broker. These pipelines are adept at managing low-latency, high-data-volume scenarios.
We have compiled the most important slides from each speaker's presentation. This year’s compilation, available for free, captures the key insights and contributions shared during the DfMAy 2024 conference.
A review on techniques and modelling methodologies used for checking electrom...nooriasukmaningtyas
The proper function of the integrated circuit (IC) in an inhibiting electromagnetic environment has always been a serious concern throughout the decades of revolution in the world of electronics, from disjunct devices to today’s integrated circuit technology, where billions of transistors are combined on a single chip. The automotive industry and smart vehicles in particular, are confronting design issues such as being prone to electromagnetic interference (EMI). Electronic control devices calculate incorrect outputs because of EMI and sensors give misleading values which can prove fatal in case of automotives. In this paper, the authors have non exhaustively tried to review research work concerned with the investigation of EMI in ICs and prediction of this EMI using various modelling methodologies and measurement setups.
ACEP Magazine edition 4th launched on 05.06.2024Rahul
This document provides information about the third edition of the magazine "Sthapatya" published by the Association of Civil Engineers (Practicing) Aurangabad. It includes messages from current and past presidents of ACEP, memories and photos from past ACEP events, information on life time achievement awards given by ACEP, and a technical article on concrete maintenance, repairs and strengthening. The document highlights activities of ACEP and provides a technical educational article for members.
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
3. Objectives
To understand the phases in a software project
To understand fundamental concepts of
requirements engineering and Analysis Modeling.
To understand the basics of object oriented
concept
To understand the major considerations for
enterprise integration and deployment.
To learn various testing and project management
techniques
4. COURSE OUTCOMES
CO. NO. COURSE OUTCOME
BLOOM
S LEVEL
At the end of the course students will be able to
CO 1 Compare different process models. C4
CO 2
Formulate Concepts of requirements engineering
and Analysis Modeling.
C4
CO 3
To understand the fundamentals of object
oriented concept
C3
CO 4 Apply systematic procedure for software design C4
CO 5 Find errors with various testing techniques C4
CO6 Evaluate project schedule, estimate project cost
and effort required
C5
5. Syllabus
UNIT-I Software Process and Agile Development 9
Introduction to Software Engineering, Software Process, Perspective and Specialized
Process Models – Introduction to Agility – Agile process – Extreme programming –
XP process - Estimation-FP,LOC and COCOMO I and II, Risk Management, Project
Scheduling.
.
UNIT-IIRequirements Analysis and Specification 9
Software Requirements: Functional and Non-Functional, User requirements,
Software Requirements Document – Requirement Engineering Process: Feasibility
Studies, Requirements elicitation and analysis, requirements validation, requirements
management-Classical analysis: Structured system Analysis, Petri Nets
UNIT III- Object Oriented Concepts 9
Introduction to OO concepts, UML Use case Diagram,Class Diagram-Object
Diagram-Component Diagram-Sequence and Collaboration-Deployment-Activity
Diagram-Package Diagram
6. Syllabus
UNIT-IV Software Design 9
Design Concepts- Design Heuristic – Architectural Design –Architectural styles,
Architectural Design, Architectural Mapping using Data Flow- User Interface
Design: Interface analysis, Interface Design –Component level Design: Designing
Class based components.
UNIT-VTesting and Management 9
Software testing fundamentals- white box testing- basis path testing-control
structure testing-black box testing- Regression Testing – Unit Testing –
Integration Testing – Validation Testing – System Testing And Debugging –
Reengineering process model – Reverse and Forward Engineering.
Total: 45 Periods
7. Syllabus
LEARNING RESOURCES:
TEXT BOOKS
1.Roger S. Pressman, “Software Engineering – A Practitioner’s Approach”, Eighth Edition,
McGraw-Hill International Edition, 2019.(Unit I,II,IV,V)
2. Ian Sommerville, “Software Engineering”, Global Edition, Pearson Education Asia,
2015.(Unit I,II,III)
3.Bernd Bruegge& Allen H. Dutoit Object-oriented software engineering using UML,
patterns, and Java ,Prentice hall ,3rd Edition 2010.(Unit III)
REFERENCES
1.Titus Winters,Tom Manshreck& Hyrum Wright, Software Engineering at Google,lessons
learned from programming over time, O’ REILLY publications,2020. (Unit I,II,IV,V)
2.Rajib Mall, “Fundamentals of Software Engineering”, Third Edition, PHI Learning
Private Limited, 2009. (Unit I,II,IV,V)
3.PankajJalote, “Software Engineering, A Precise Approach”, Wiley India, 2010 (Unit
I,II,IV,V)
ONLINE LINKS
1.http://www.nptelvideos.in/2012/11/software-engineering.html
2. https://nptel.ac.in/courses/106/101/106101061/
9. What is Software?
9
The product that software professionals build and then
support over the long term.
Software encompasses: (1) instructions (computer
programs) that when executed provide desired features,
function, and performance; (2) data structures that enable
the programs to adequately store and manipulate
information and (3) documentation that describes the
operation and use of the programs.
10. 10
What is Software?
Software is a set of items or objects
that form a “configuration” that
includes
• programs
• documents
• data ...
11. 11
Software’s Dual Role
• Software is a product
– Produces, manages, acquires, modifies, displays,
or transmits information
• Software is a vehicle for delivering a product
– Supports or directly provides system functionality
– Controls other programs (e.g., an operating
system)
– Effects communications (e.g., networking
software)
– Helps build other software (e.g., software tools)
12. 12
What Is Software?
Is the Product that SW engineers Design and Build.
it encompasses:
Instructions “Computer Programs”
Documents “Describe Programs”
Architecture including Data Structures “Enable Programs”
Logical rather than physical
13. 13
Software vs. Hardware
• software is engineered not manufactured
• software doesn’t wear out
• Software is custom build
15. Software products
• Generic products
– Stand-alone systems that are marketed and sold to any
customer who wishes to buy them.
– Examples – PC software such as editing, graphics
programs, project management tools; CAD software;
software for specific markets such as appointments systems
for dentists.
• Customized products
– Software that is commissioned by a specific customer to
meet their own needs.
– Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
15
16. Why Software is Important?
• The economies of ALL developed nations are
dependent on software.
• More and more systems are software controlled
(transportation, medical, telecommunications, military,
industrial, entertainment,)
• Software engineering is concerned with theories,
methods and tools for professional software
development.
• Expenditure on software represents a
significant fraction of GNP in all developed countries.
17. Software costs
• Software costs often dominate computer
system costs. The costs of software on a PC
are often greater than the hardware cost.
• Software costs more to maintain than it does
to develop. For systems with a long life,
maintenance costs may be several times
development costs.
• Software engineering is concerned with cost-
effective software development.
18. Features of Software?
• Its characteristics that make it different from other things human being
build.
Features of such logical system:
• Software is developed or engineered, it is not manufactured in the
classical sense which has quality problem.
• Software doesn't "wear out.” but it deteriorates (due to change). Hardware
has bathtub curve of failure rate ( high failure rate in the beginning, then drop to
steady state, then cumulative effects of dust, vibration, abuse occurs).
• Although the industry is moving toward component-based construction
(e.g. standard screws and off-the-shelf integrated circuits), most
software continues to be custom-built. Modern reusable components
encapsulate data and processing into software parts to be reused by
different programs. E.g. graphical user interface, window, pull-down
menus in library etc.
18
19. Software Applications
1. System software: such as compilers, editors, file
management utilities
2. Application software: stand-alone programs for
specific needs.
3.Engineering/scientific software: Characterized by
“number crunching”algorithms. such as automotive
stress analysis, molecular biology, orbital dynamics etc
4. Embedded software resides within a product or system.
(key pad control of a microwave oven, digital function
of dashboard display in a car).
19
20. Software Applications
5. Product-line software focus on a limited marketplace
to address mass consumer market. (word processing,
graphics, database management)
6. WebApps (Web applications) network centric software.
As web 2.0 emerges, more sophisticated computing
environments is supported integrated with remote
database and business applications.
7. AI software uses non-numerical algorithm to solve
complex problem. Robotics, expert system, pattern
recognition game playing
20
21. The IEEE definition:
Software Engineering: (1) The application of a systematic,
disciplined, quantifiable approach to the development,
operation, and maintenance of software; that is, the
application of engineering to software. (2) The study of
approaches as in (1).
The seminal definition:
[Software engineering is] the establishment and use of sound
engineering principles in order to obtain economically
software that is reliable and works efficiently on real
machines.
Software Engineering Definition
22. Importance of Software Engineering
• More and more, individuals and society rely on
advanced software systems. We need to be able to
produce reliable and trustworthy systems
economically and quickly.
• It is usually cheaper, in the long run, to use software
engineering methods and techniques for software
systems rather than just write the programs as if it
was a personal programming project. For most types
of system, the majority of costs are the costs of
changing the software after it has gone into use.
22
23. FAQ about software engineering
23
Question Answer
What is software?
Computer programs, data structures and associated
documentation. Software products may be developed
for a particular customer or may be developed for a
general market.
What are the attributes of good
software?
Good software should deliver the required
functionality and performance to the user and should
be maintainable, dependable and usable.
What is software engineering?
Software engineering is an engineering discipline that
is concerned with all aspects of software production.
What is the difference between software
engineering and computer science?
Computer science focuses on theory and
fundamentals; software engineering is concerned with
the practicalities of developing and delivering useful
software.
What is the difference between software
engineering and system engineering?
System engineering is concerned with all aspects of
computer-based systems development including
hardware, software and process engineering. Software
engineering is part of this more general process.
24. Essential attributes of good software
24
Product characteristic Description
Maintainability
Software should be written in such a way so that it can evolve to
meet the changing needs of customers. This is a critical
attribute because software change is an inevitable requirement
of a changing business environment.
Dependability and
security
Software dependability includes a range of characteristics
including reliability, security and safety. Dependable software
should not cause physical or economic damage in the event of
system failure. Malicious users should not be able to access or
damage the system.
Efficiency
Software should not make wasteful use of system resources
such as memory and processor cycles. Efficiency therefore
includes responsiveness, processing time, memory utilisation,
etc.
Acceptability
Software must be acceptable to the type of users for which it is
designed. This means that it must be understandable, usable
and compatible with other systems that they use.
25. A Layered Technology
25
a “quality” focus
process model
methods
tools
Any engineering approach must rest on organizational commitment to quality which
fosters a continuous process improvement culture.
Process layer as the foundation defines a framework with activities for effective delivery of
software engineering technology. Establish the context where products (model, data,
report, and forms) are produced, milestone are established, quality is ensured and change
is managed.
Method provides technical how-to’s for building software. It encompasses many tasks
including communication, requirement analysis, design modeling, program construction,
testing and support.
Tools provide automated or semi-automated support for the process and methods.
26. Software Process
• A process is a collection of activities, actions and
tasks that are performed when some work product is
to be created. It is not a rigid prescription for how
to build computer software. Rather, it is an adaptable
approach that enables the people doing the work to
pick and choose the appropriate set of work actions
and tasks.
• Purpose of process is to deliver software in a timely
manner and with sufficient quality to satisfy those
who have sponsored its creation and those who will
use it.
26
27. Five Activities of a Generic Process
Framework
• Communication: communicate with customer to understand objectives and
gather requirements
• Planning: creates a “map” defines the work by describing the tasks, risks
and resources, work products and work schedule.
• Modeling: Create a “sketch”, what it looks like architecturally, how the
constituent parts fit together and other characteristics.
• Construction: code generation and the testing.
• Deployment: Delivered to the customer who evaluates the products and
provides feedback based on the evaluation.
• These five framework activities can be used to all software development
regardless of the application domain, size of the project, complexity of the
efforts etc, though the details will be different in each case.
• For many software projects, these framework activities are applied
iteratively as a project progresses. Each iteration produces a software
increment that provides a subset of overall software features and
functionality. 27
28. 28
SE Activities
Com m unic at ion
Planning
Modeling
Const r uc t ion
Deploy m ent
analysis
design
code
t est
projec t init iat ion
requirem e
nt gat hering estimating
scheduling
tracking
deliv ery
s upport
f eedbac k
Each phase has three components:
1. Set of activities - This is what you do
2. Set of deliverables - This is what you produce.
3. Quality Control Measures - This is what you use to evaluate the deliverables.
29. Umbrella Activities
Complement the five process framework activities and help team manage and
control progress, quality, change, and risk.
• Software project tracking and control: assess progress against the plan and
take actions to maintain the schedule.
• Risk management: assesses risks that may affect the outcome and quality.
• Software quality assurance: defines and conduct activities to ensure quality.
• Technical reviews: assesses work products to uncover and remove errors
before going to the next activity.
• Measurement: define and collects process, project, and product measures to
ensure stakeholder’s needs are met.
• Software configuration management: manage the effects of change
throughout the software process.
• Reusability management: defines criteria for work product reuse and
establishes mechanism to achieve reusable components.
• Work product preparation and production: create work products such as
models, documents, logs, forms and lists.
29
30. Prescriptive Process Models
- Generic process framework (revisited)
- Traditional process models
- Specialized process models
- The unified process
31. 31
Generic Process Framework
• Communication
– Involves communication among the customer and other stake holders;
encompasses requirements gathering
• Planning
– Establishes a plan for software engineering work; addresses technical tasks,
resources, work products, and work schedule
• Modeling (Analyze, Design)
– Encompasses the creation of models to better under the requirements and
the design
• Construction (Code, Test)
– Combines code generation and testing to uncover errors
• Deployment
– Involves delivery of software to the customer for evaluation and feedback
32. 32
Modeling: Software Requirements
Analysis
• Helps software engineers to better understand the problem they will
work to solve
• Encompasses the set of tasks that lead to an understanding of what
the business impact of the software will be, what the customer wants,
and how end-users will interact with the software
• Uses a combination of text and diagrams to depict requirements for
data, function, and behavior
– Provides a relatively easy way to understand and review requirements for
correctness, completeness and consistency
33. 33
Modeling: Software Design
• Brings together customer requirements, business needs, and technical
considerations to form the “blueprint” for a product
• Creates a model that that provides detail about software data structures,
software architecture, interfaces, and components that are necessary to
implement the system
• Architectural design
– Represents the structure of data and program components that are required to
build the software
– Considers the architectural style, the structure and properties of components that
constitute the system, and interrelationships that occur among all architectural
components
• User Interface Design
– Creates an effective communication medium between a human and a computer
– Identifies interface objects and actions and then creates a screen layout that forms
the basis for a user interface prototype
• Component-level Design
– Defines the data structures, algorithms, interface characteristics, and
communication mechanisms allocated to each software component
35. 35
Prescriptive Process Model
• Defines a distinct set of activities, actions, tasks, milestones, and work
products that are required to engineer high-quality software
• The activities may be linear, incremental, or evolutionary
37. 37
Waterfall Model
(Description)
• Oldest software lifecycle model and best understood by upper management
• Used when requirements are well understood and risk is low
• Work flow is in a linear (i.e., sequential) fashion
• Used often with well-defined adaptations or enhancements to current
software
38. 38
Waterfall Model
(Problems)
• Doesn't support iteration, so changes can cause confusion
• Difficult for customers to state all requirements explicitly and up front
• Requires customer patience because a working version of the program
doesn't occur until the final phase
• Problems can be somewhat alleviated in the model through the addition of
feedback loops (see the next slide)
39. 39
Waterfall Model with Feedback
(Diagram)
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design Construction
Code
Test Deployment
Delivery
Support
Feedback
41. 41
Incremental Model
(Description)
• Used when requirements are well understood
• Multiple independent deliveries are identified
• Work flow is in a linear (i.e., sequential) fashion within an increment and is
staggered between increments
• Iterative in nature; focuses on an operational product with each increment
• Provides a needed set of functionality sooner while delivering optional
components later
• Useful also when staffing is too short for a full-scale development
43. 43
Prototyping Model
(Description)
• Follows an evolutionary and iterative approach
• Used when requirements are not well understood
• Serves as a mechanism for identifying software requirements
• Focuses on those aspects of the software that are visible to the
customer/user
• Feedback is used to refine the prototype
44. 44
Prototyping Model
(Potential Problems)
• The customer sees a "working version" of the software, wants to stop all
development and then buy the prototype after a "few fixes" are made
• Developers often make implementation compromises to get the software
running quickly (e.g., language choice, user interface, operating system
choice, inefficient algorithms)
• Lesson learned
– Define the rules up front on the final disposition of the prototype before it is
built
– In most circumstances, plan to discard the prototype and engineer the actual
production software with a goal toward quality
46. 46
Spiral Model
(Description)
• Invented by Dr. Barry Boehm in 1988 while working at TRW
• Follows an evolutionary approach
• Used when requirements are not well understood and risks are high
• Inner spirals focus on identifying software requirements and project risks; may
also incorporate prototyping
• Outer spirals take on a classical waterfall approach after requirements have
been defined, but permit iterative growth of the software
• Operates as a risk-driven model…a go/no-go decision occurs after each
complete spiral in order to react to risk determinations
• Requires considerable expertise in risk assessment
• Serves as a realistic model for large-scale software development
47. 47
General Weaknesses of
Evolutionary Process Models
1) Prototyping poses a problem to project planning because of the
uncertain number of iterations required to construct the product
2) Evolutionary software processes do not establish the maximum speed
of the evolution
• If too fast, the process will fall into chaos
• If too slow, productivity could be affected
3) Software processes should focus first on flexibility and extensibility, and
second on high quality
• We should prioritize the speed of the development over zero defects
• Extending the development in order to reach higher quality could result in
late delivery
49. 49
Component-based Development Model
• Consists of the following process steps
– Available component-based products are researched and evaluated for
the application domain in question
– Component integration issues are considered
– A software architecture is designed to accommodate the components
– Components are integrated into the architecture
– Comprehensive testing is conducted to ensure proper functionality
• Relies on a robust component library
• Capitalizes on software reuse, which leads to documented savings in
project cost and time
50. 50
Formal Methods Model
(Description)
• Encompasses a set of activities that leads to formal mathematical
specification of computer software
• Enables a software engineer to specify, develop, and verify a
computer-based system by applying a rigorous, mathematical
notation
• Ambiguity, incompleteness, and inconsistency can be discovered and
corrected more easily through mathematical analysis
• Offers the promise of defect-free software
• Used often when building safety-critical systems
51. 51
Formal Methods Model
(Challenges)
• Development of formal methods is currently quite time-consuming
and expensive
• Because few software developers have the necessary background to
apply formal methods, extensive training is required
• It is difficult to use the models as a communication mechanism for
technically unsophisticated customers
53. 53
Background
• Birthed during the late 1980's and early 1990s when object-oriented
languages were gaining wide-spread use
• Many object-oriented analysis and design methods were proposed;
three top authors were Grady Booch, Ivar Jacobson, and James
Rumbaugh
• They eventually worked together on a unified method, called the
Unified Modeling Language (UML)
– UML is a robust notation for the modeling and development of object-
oriented systems
– UML became an industry standard in 1997
– However, UML does not provide the process framework, only the
necessary technology for object-oriented development
54. 54
Background (continued)
• Booch, Jacobson, and Rumbaugh later developed the unified process,
which is a framework for object-oriented software engineering using
UML
– Draws on the best features and characteristics of conventional software
process models
– Emphasizes the important role of software architecture
– Consists of a process flow that is iterative and incremental, thereby
providing an evolutionary feel
• Consists of five phases: inception, elaboration, construction,
transition, and production
55. 55
Phases of the Unified Process
communication
planning
modeling
construction
deployment
Inception Elaboration
Construction
Transition
Production
56. 56
Inception Phase
• Encompasses both customer communication and planning activities of the
generic process
• Business requirements for the software are identified
• A rough architecture for the system is proposed
• A plan is created for an incremental, iterative development
• Fundamental business requirements are described through preliminary use
cases
– A use case describes a sequence of actions that are performed by a user
57. 57
Elaboration Phase
• Encompasses both the planning and modeling activities of the generic process
• Refines and expands the preliminary use cases
• Expands the architectural representation to include five views
– Use-case model
– Analysis model
– Design model
– Implementation model
– Deployment model
• Often results in an executable architectural baseline that represents a first cut
executable system
• The baseline demonstrates the viability of the architecture but does not
provide all features and functions required to use the system
58. 58
Construction Phase
• Encompasses the construction activity of the generic process
• Uses the architectural model from the elaboration phase as input
• Develops or acquires the software components that make each use-case
operational
• Analysis and design models from the previous phase are completed to reflect
the final version of the increment
• Use cases are used to derive a set of acceptance tests that are executed prior to
the next phase
59. 59
Transition Phase
• Encompasses the last part of the construction activity and the first part of the
deployment activity of the generic process
• Software is given to end users for beta testing and user feedback reports on
defects and necessary changes
• The software teams create necessary support documentation (user manuals,
trouble-shooting guides, installation procedures)
• At the conclusion of this phase, the software increment becomes a usable
software release
60. 60
Production Phase
• Encompasses the last part of the deployment activity of the generic process
• On-going use of the software is monitored
• Support for the operating environment (infrastructure) is provided
• Defect reports and requests for changes are submitted and evaluated
61. 61
Unified Process Work Products
• Work products are produced in each of the first four phases of the
unified process
• In this model, we will concentrate on the analysis model and the
design model work products
• Analysis model includes
– Scenario-based model, class-based model, and behavioral model
• Design model includes
– Component-level design, interface design, architectural design, and
data/class design
63. 63
The Manifesto for
Agile Software Development
“We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
•Individuals and interactions over processes and
tools
•Working software over comprehensive
documentation
•Customer collaboration over contract
negotiation
•Responding to change over following a plan
That is, while there is value in the items on the right,
we value the items on the left more.” Kent Beck et al
64. 64
What is
“Agility”?
• Effective (rapid and adaptive) response to
change
• Effective communication among all
stakeholders
• Drawing the customer onto the team
• Organizing a team so that it is in control of the
work performed
Yielding …
• Rapid, incremental delivery of software
66. 66
An Agile Process
• Is driven by customer descriptions of what is
required (scenarios)
• Recognizes that plans are short-lived
• Develops software iteratively with a heavy
emphasis on construction activities
• Delivers multiple ‘software increments’
• Adapts as changes occur
67. 67
Agility Principles - I
1. Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile
processes harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of
months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the
project.
5. Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and
within a development team is face–to–face conversation.
68. 68
Agility Principles - II
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors,
developers, and users should be able to maintain a constant pace
indefinitely.
9. Continuous attention to technical excellence and good design
enhances agility.
10. Simplicity – the art of maximizing the amount of work not done – is
essential.
11. The best architectures, requirements, and designs emerge from
self–organizing teams.
12. At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.
69. 69
Human Factors
• the process molds to the needs of the people
and team, not the other way around
• key character must exist among the people on
an agile team and the team itself:
– Competence.
– Common focus.
– Collaboration.
– Decision-making ability.
– Fuzzy problem-solving ability.
– Mutual trust and respect.
– Self-organization.
70. 70
Extreme Programming (XP)
• The most widely used agile process, originally
proposed by Kent Beck
• XP Planning
– Begins with the creation of “user stories”
– Agile team assesses each story and assigns a cost
– Stories are grouped to for a deliverable increment
– A commitment is made on delivery date
– After the first increment “project velocity” is used
to help define subsequent delivery dates for other
increments
71. 71
Extreme Programming (XP)
• XP Design
– Follows the KIS principle
– Encourage the use of CRC cards
– For difficult design problems, suggests the creation of “spike
solutions”—a design prototype
– Encourages “refactoring”—an iterative refinement of the internal
program design
• XP Coding
– Recommends the construction of a unit test for a store before coding
commences
– Encourages “pair programming”
• XP Testing
– All unit tests are executed daily
– “Acceptance tests” are defined by the customer and excuted to assess
customer visible functionality
72. 72
Extreme Programming (XP)
unit t est
cont inuous int egrat ion
accept ance t est ing
pair
programming
Release
user st ories
values
accept ance t est crit eria
it erat ion plan
simple design
CRC cards
spike solut ions
prot ot ypes
refact oring
software increment
project velocity computed
73. 73
Adaptive Software Development
• Originally proposed by Jim Highsmith
• ASD — distinguishing features
– Mission-driven planning
– Component-based focus
– Uses “time-boxing”
– Explicit consideration of risks
– Emphasizes collaboration for requirements gathering
– Emphasizes “learning” throughout the process
74. 74
Adaptive Software Development
adapt ive cycle planning
uses mission st at ement
project const raint s
basic requirement s
t ime-boxed release plan
Requirement s gat hering
JAD
mini-specs
component s implement ed/ t est ed
focus groups for feedback
formal t echnical reviews
post mort ems
software increment
adjustments for subsequent cycles
Release
75. 75
Dynamic Systems Development Method
• Promoted by the DSDM Consortium (www.dsdm.org)
• DSDM—distinguishing features
– Similar in most respects to XP and/or ASD
– Nine guiding principles
• Active user involvement is imperative.
• DSDM teams must be empowered to make decisions.
• The focus is on frequent delivery of products.
• Fitness for business purpose is the essential criterion for acceptance of
deliverables.
• Iterative and incremental development is necessary to converge on an accurate
business solution.
• All changes during development are reversible.
• Requirements are baselined at a high level
• Testing is integrated throughout the life-cycle.
77. 77
Scrum
• Originally proposed by Schwaber and Beedle
• Scrum—distinguishing features
–Development work is partitioned into “packets”
–Testing and documentation are on-going as the
product is constructed
–Work occurs in “sprints” and is derived from a
“backlog” of existing requirements
–Meetings are very short and sometimes conducted
without chairs
–“demos” are delivered to the customer with the
time-box allocated
79. 79
Crystal
• Proposed by Cockburn and Highsmith
• Crystal—distinguishing features
– Actually a family of process models that allow
“maneuverability” based on problem
characteristics
– Face-to-face communication is emphasized
– Suggests the use of “reflection workshops” to
review the work habits of the team
80. 80
Feature Driven Development
• Originally proposed by Peter Coad et al
• FDD—distinguishing features
– Emphasis is on defining “features”
• a feature “is a client-valued function that can be
implemented in two weeks or less.”
–Uses a feature template
• <action> the <result> <by | for | of | to> a(n) <object>
–A features list is created and “plan by
feature” is conducted
–Design and construction merge in FDD
82. 82
Agile Modeling
• Originally proposed by Scott Ambler
• Suggests a set of agile modeling principles
– Model with a purpose
– Use multiple models
– Travel light
– Content is more important than representation
– Know the models and the tools you use to create
them
– Adapt locally
83. 83
Estimation
• Estimation of resources, cost, and schedule for
a software engineering effort requires
– experience
– access to good historical information (metrics)
– the courage to commit to quantitative predictions
when qualitative information is all that exists
• Estimation carries inherent risk and this risk
leads to uncertainty
85. 85
To Understand Scope ...
• Understand the customers needs
• understand the business context
• understand the project boundaries
• understand the customer’s
motivation
• understand the likely paths for
change
• understand that ...
Even when you understand,
nothing is guaranteed!
86. 86
What is Scope?
• Software scope describes
– the functions and features that are to be delivered
to end-users
– the data that are input and output
– the “content” that is presented to users as a
consequence of using the software
– the performance, constraints, interfaces, and
reliability that bound the system.
• Scope is defined using one of two techniques:
• A narrative description of software scope is developed
after communication with all stakeholders.
• A set of use-cases is developed by end-users.
88. 88
Project Estimation
• Project scope must be understood
• Elaboration (decomposition) is
necessary
• Historical metrics are very helpful
• At least two different techniques
should be used
• Uncertainty is inherent in the
process
90. 90
Estimation Accuracy
• Predicated on …
– the degree to which the planner has properly
estimated the size of the product to be built
– the ability to translate the size estimate into
human effort, calendar time, and dollars (a
function of the availability of reliable software
metrics from past projects)
– the degree to which the project plan reflects the
abilities of the software team
– the stability of product requirements and the
environment that supports the software
engineering effort.
93. 93
Example: LOC Approach
Average productivity for systems of this type = 620 LOC/pm.
Burdened labor rate =$8000 per month, the cost per line of code is
approximately $13.
Based on the LOC estimate and the historical productivity data, the total
estimated project cost is $431,000 and the estimated effort is 54 person-
months.
94. 94
These slides are designed to
accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-
Hill 2009). Slides copyright 2009 by
Example: FP Approach
The estimated number of FP is derived:
FPestimated = count-total 3 [0.65 + 0.01 3 S (Fi)]
FPestimated = 375
organizational average productivity = 6.5 FP/pm.
burdened labor rate = $8000 per month, approximately $1230/FP.
Based on the FP estimate and the historical productivity data, total estimated
project cost is $461,000 and estimated effort is 58 person-months.
95. 95
Process-Based Estimation
Obtained from “process framework”
application
functions
framework activities
Effort required to
accomplish
each framework
activity for each
application function
96. 96
Process-Based Estimation Example
Activity
Task
Function
UICF
2DGA
3DGA
DSM
PCF
CGDF
DAM
Totals
% effort
CC Planning
Risk
Analysis Engineering
Construction
Release Totals
CE
analysis design code test
0.25 0.25 0.25 3.50 20.50 4.50 16.50 46.00
1% 1% 1% 8% 45% 10% 36%
CC = customer communication CE = customer evaluation
0.50
0.75
0.50
0.50
0.50
0.25
2.50
4.00
4.00
3.00
3.00
2.00
0.40
0.60
1.00
1.00
0.75
0.50
5.00
2.00
3.00
1.50
1.50
1.50
8.40
7.35
8.50
6.00
5.75
4.25
0.50 2.00 0.50 2.00 5.00
n/a
n/a
n/a
n/a
n/a
n/a
n/a
Based on an average burdened labor rate of $8,000 per
month, the total estimated project cost is $368,000 and
the estimated effort is 46 person-months.
98. 98
Estimation with Use-Cases
use cases scenarios pages Êscenarios pages LOC LOC estimate
e subsystem 6 10 6 Ê 12 5 560 3,366
subsystem group 10 20 8 Ê 16 8 3100 31,233
e subsystemgroup 5 6 5 Ê 10 6 1650 7,970
Ê Ê Ê Ê
stimate Ê Ê Ê Ê 42,568
User interface subsystem
Engineering subsystem group
Infrastructure subsystem group
Total LOC estimate
Using 620 LOC/pm as the average productivity for systems of
this type and a burdened labor rate of $8000 per month, the
cost per line of code is approximately $13. Based on the use-
case estimate and the historical productivity data, the total
estimated project cost is $552,000 and the estimated
effort is 68 person-months.
99. 99
Empirical Estimation Models
General form:
effort = tuning coefficient * size
exponent
usually derived
as person-months
of effort required
either a constant or
a number derived based
on complexity of project
usually LOC but
may also be
function point
empirically
derived
100. 100
COCOMO-II
• COCOMO II is actually a hierarchy of
estimation models that address the following
areas:
• Application composition model. Used during the early
stages of software engineering, when prototyping of
user interfaces, consideration of software and system
interaction, assessment of performance, and evaluation
of technology maturity are paramount.
• Early design stage model. Used once requirements
have been stabilized and basic software architecture
has been established.
• Post-architecture-stage model. Used during the
construction of the software.
101. 101
The Software Equation
A dynamic multivariable model
E = [LOC x B0.333/P]3 x (1/t4)
where
E = effort in person-months or person-years
t = project duration in months or years
B = “special skills factor”
P = “productivity parameter”
102. 102
Estimation for OO Projects-I
• Develop estimates using effort decomposition, FP analysis, and any
other method that is applicable for conventional applications.
• Using object-oriented requirements modeling (Chapter 6), develop
use-cases and determine a count.
• From the analysis model, determine the number of key classes
(called analysis classes in Chapter 6).
• Categorize the type of interface for the application and develop a
multiplier for support classes:
– Interface type Multiplier
– No GUI 2.0
– Text-based user interface 2.25
– GUI 2.5
– Complex GUI 3.0
103. 103
Estimation for OO Projects-II
• Multiply the number of key classes (step 3) by the multiplier to obtain an
estimate for the number of support classes.
• Multiply the total number of classes (key + support) by the average
number of work-units per class. Lorenz and Kidd suggest 15 to 20 person-
days per class.
• Cross check the class-based estimate by multiplying the average number
of work-units per use-case
104. 104
Estimation for Agile Projects
• Each user scenario (a mini-use-case) is considered separately for
estimation purposes.
• The scenario is decomposed into the set of software engineering
tasks that will be required to develop it.
• Each task is estimated separately. Note: estimation can be based on
historical data, an empirical model, or “experience.”
– Alternatively, the ‘volume’ of the scenario can be estimated in LOC, FP or
some other volume-oriented measure (e.g., use-case count).
• Estimates for each task are summed to create an estimate for the
scenario.
– Alternatively, the volume estimate for the scenario is translated into
effort using historical data.
• The effort estimates for all scenarios that are to be implemented for a
given software increment are summed to develop the effort estimate
for the increment.
106. 106
Computing Expected Cost
(path probability) x (estimated path cost)
i i
For example, the expected cost to build is:
expected cost = 0.30 ($380K) + 0.70 ($450K)
similarly,
expected cost = $382K
expected cost = $267K
expected cost = $410K
build
reuse
buy
contr
expected cost =
= $429 K
107. 107
Project Risks
What can go wrong?
What is the likelihood?
What will the damage be?
What can we do about it?
108. 108
Reactive Risk Management
• project team reacts to risks when they occur
• mitigation—plan for additional resources in
anticipation of fire fighting
• fix on failure—resource are found and applied
when the risk strikes
• crisis management—failure does not respond
to applied resources and project is in jeopardy
109. 109
Proactive Risk Management
• formal risk analysis is performed
• organization corrects the root
causes of risk
– TQM concepts and statistical SQA
– examining risk sources that lie beyond
the bounds of the software
– developing the skill to manage change
110. 110
Seven Principles
• Maintain a global perspective—view software risks within the context of
system and the business problem
• Take a forward-looking view—think about the risks that may arise in the
future; establish contingency plans
• Encourage open communication—if someone states a potential risk, don’t
discount it.
• Integrate—a consideration of risk must be integrated into the software
process
• Emphasize a continuous process—the team must be vigilant throughout
the software process, modifying identified risks as more information is
known and adding new ones as better insight is achieved.
• Develop a shared product vision—if all stakeholders share the same
vision of the software, it likely that better risk identification and
assessment will occur.
• Encourage teamwork—the talents, skills and knowledge of all stakeholder
should be pooled
112. 112
Risk Identification
• Product size—risks associated with the overall size of the software to be built
or modified.
• Business impact—risks associated with constraints imposed by management
or the marketplace.
• Customer characteristics—risks associated with the sophistication of the
customer and the developer's ability to communicate with the customer in a
timely manner.
• Process definition—risks associated with the degree to which the software
process has been defined and is followed by the development organization.
• Development environment—risks associated with the availability and quality
of the tools to be used to build the product.
• Technology to be built—risks associated with the complexity of the system to
be built and the "newness" of the technology that is packaged by the system.
• Staff size and experience—risks associated with the overall technical and
project experience of the software engineers who will do the work.
113. 113
Assessing Project Risk-I
• Have top software and customer managers
formally committed to support the project?
• Are end-users enthusiastically committed to
the project and the system/product to be
built?
• Are requirements fully understood by the
software engineering team and their
customers?
• Have customers been involved fully in the
definition of requirements?
• Do end-users have realistic expectations?
114. 114
Assessing Project Risk-II
• Is project scope stable?
• Does the software engineering team have the right
mix of skills?
• Are project requirements stable?
• Does the project team have experience with the
technology to be implemented?
• Is the number of people on the project team
adequate to do the job?
• Do all customer/user constituencies agree on the
importance of the project and on the requirements
for the system/product to be built?
115. 115
Risk Components
• performance risk—the degree of uncertainty
that the product will meet its requirements
and be fit for its intended use.
• cost risk—the degree of uncertainty that the
project budget will be maintained.
• support risk—the degree of uncertainty that
the resultant software will be easy to correct,
adapt, and enhance.
• schedule risk—the degree of uncertainty that
the project schedule will be maintained and
that the product will be delivered on time.
116. 116
Risk Projection
• Risk projection, also called risk estimation,
attempts to rate each risk in two ways
– the likelihood or probability that the risk is real
– the consequences of the problems associated
with the risk, should it occur.
• The are four risk projection steps:
– establish a scale that reflects the perceived
likelihood of a risk
– define the consequences of the risk
– estimate the impact of the risk on the project and
the product,
– note the overall accuracy of the risk projection so
that there will be no misunderstandings.
117. 117
Building a Risk Table
Risk Probability Impact RMMM
Risk
Mitigation
Monitoring
&
Management
118. 118
Building the Risk Table
• Estimate the probability of occurrence
• Estimate the impact on the project on a
scale of 1 to 5, where
– 1 = low impact on project success
– 5 = disastrous impact on project success
• sort the table by probability and impact
119. 119
Risk Exposure (Impact)
The overall risk exposure, RE, is determined using the following
relationship [Hal98]:
RE = P x C
where
P is the probability of occurrence for a risk, and
C is the cost to the project should the risk occur.
120. 120
Risk Exposure Example
• Risk identification. Only 70 percent of the software components
scheduled for reuse will, in fact, be integrated into the application. The
remaining functionality will have to be custom developed.
• Risk probability. 80% (likely).
• Risk impact. 60 reusable software components were planned. If only 70
percent can be used, 18 components would have to be developed from
scratch (in addition to other custom software that has been scheduled for
development). Since the average component is 100 LOC and local data
indicate that the software engineering cost for each LOC is $14.00, the
overall cost (impact) to develop the components would be 18 x 100 x 14 =
$25,200.
• Risk exposure. RE = 0.80 x 25,200 ~ $20,200.
121. 121
• mitigation—how can we avoid the risk?
• monitoring—what factors can we track that
will enable us to determine if the risk is
becoming more or less likely?
• management—what contingency plans do
we have if the risk becomes a reality?
Risk Mitigation, Monitoring,
and Management
122. 122
Risk Due to Product Size
• estimated size of the product in LOC or FP?
• estimated size of product in number of programs,
files, transactions?
• percentage deviation in size of product from
average for previous products?
• size of database created or used by the product?
• number of users of the product?
• number of projected changes to the requirements
for the product? before delivery? after delivery?
• amount of reused software?
Attributes that affect risk:
123. 123
Risk Due to Business Impact
• affect of this product on company revenue?
• visibility of this product by senior management?
• reasonableness of delivery deadline?
• number of customers who will use this product
• interoperability constraints
• sophistication of end users?
• amount and quality of product documentation that
must be produced and delivered to the customer?
• governmental constraints
• costs associated with late delivery?
• costs associated with a defective product?
Attributes that affect risk:
124. 124
Risks Due to the Customer
• Have you worked with the customer in the past?
• Does the customer have a solid idea of requirements?
• Has the customer agreed to spend time with you?
• Is the customer willing to participate in reviews?
• Is the customer technically sophisticated?
• Is the customer willing to let your people do their
job—that is, will the customer resist looking over your
shoulder during technically detailed work?
• Does the customer understand the software
engineering process?
Questions that must be answered:
125. 125
Risks Due to Process Maturity
• Have you established a common process framework?
• Is it followed by project teams?
• Do you have management support for
software engineering
• Do you have a proactive approach to SQA?
• Do you conduct formal technical reviews?
• Are CASE tools used for analysis, design and
testing?
• Are the tools integrated with one another?
• Have document formats been established?
Questions that must be answered:
126. 126
Technology Risks
• Is the technology new to your organization?
• Are new algorithms, I/O technology required?
• Is new or unproven hardware involved?
• Does the application interface with new software?
• Is a specialized user interface required?
• Is the application radically different?
• Are you using new software engineering methods?
• Are you using unconventional software development
methods, such as formal methods, AI-based approaches,
artificial neural networks?
• Are there significant performance constraints?
• Is there doubt the functionality requested is "do-able?"
Questions that must be answered:
127. 127
Staff/People Risks
• Are the best people available?
• Does staff have the right skills?
• Are enough people available?
• Are staff committed for entire duration?
• Will some people work part time?
• Do staff have the right expectations?
• Have staff received necessary training?
• Will turnover among staff be low?
Questions that must be answered:
128. 128
Project: Embedded software for XYZ system
Risk type: schedule risk
Priority (1 low ... 5 critical): 4
Risk factor: Project completion will depend on tests which require
hardware component under development. Hardware component
delivery may be delayed
Probability: 60 %
Impact: Project completion will be delayed for each day that
hardware is unavailable for use in software testing
Monitoring approach:
Scheduled milestone reviews with hardware group
Contingency plan:
Modification of testing strategy to accommodate delay using
software simulation
Estimated resources: 6 additional person months beginning in July
Recording Risk Information
129. 129
Why Are Projects Late?
• an unrealistic deadline established by someone outside the software
development group
• changing customer requirements that are not reflected in schedule
changes;
• an honest underestimate of the amount of effort and/or the number of
resources that will be required to do the job;
• predictable and/or unpredictable risks that were not considered when
the project commenced;
• technical difficulties that could not have been foreseen in advance;
• human difficulties that could not have been foreseen in advance;
• miscommunication among project staff that results in delays;
• a failure by project management to recognize that the project is falling
behind schedule and a lack of action to correct the problem
130. 130
Scheduling Principles
• compartmentalization—define distinct tasks
• interdependency—indicate task
interrelationship
• effort validation—be sure resources are
available
• defined responsibilities—people must be
assigned
• defined outcomes—each task must have an
output
• defined milestones—review for quality
131. 131
Effort and Delivery Time
Effort
Cost
Impossible
region
td
Ed
Tmin = 0.75T d
to
Eo
Ea = m ( td
4/ ta
4)
development time
Ea = effort in person-months
td = nominal delivery time for schedule
to = optimal development time (in terms of cost)
ta = actual delivery time desired
132. 132
Effort Allocation
• “front end” activities
– customer communication
– analysis
– design
– review and modification
• construction activities
– coding or code generation
• testing and installation
– unit, integration
– white-box, black box
– regression
40-50%
30-40%
15-20%
133. 133
Defining Task Sets
• determine type of project
• assess the degree of rigor required
• identify adaptation criteria
• select appropriate software
engineering tasks
134. 134
Task Set Refinement
1.1 Concept scoping determines the overall scope of the
project.
Task definition: Task 1.1 Concept Scoping
1.1.1 Identify need, benefits and potential customers;
1.1.2 Define desired output/control and input events that drive the application;
Begin Task 1.1.2
1.1.2.1 FTR: Review written description of need
FTR indicates that a formal technical review (Chapter 26) is to be conducted.
1.1.2.2 Derive a list of customer visible outputs/inputs
1.1.2.3 FTR: Review outputs/inputs with customer and revise as required;
endtask Task 1.1.2
1.1.3 Define the functionality/behavior for each major function;
Begin Task 1.1.3
1.1.3.1 FTR: Review output and input data objects derived in task 1.1.2;
1.1.3.2 Derive a model of functions/behaviors;
1.1.3.3 FTR: Review functions/behaviors with customer and revise as required;
endtask Task 1.1.3
1.1.4 Isolate those elements of the technology to be implemented in software;
1.1.5 Research availability of existing software;
1.1.6 Define technical feasibility;
1.1.7 Make quick estimate of size;
1.1.8 Create a Scope Definition;
endTask definition: Task 1.1
is refined to
138. 138
Schedule Tracking
– conduct periodic project status meetings in which each
team member reports progress and problems.
– evaluate the results of all reviews conducted throughout
the software engineering process.
– determine whether formal project milestones (the
diamonds shown in Figure 27.3) have been accomplished by
the scheduled date.
– compare actual start-date to planned start-date for each
project task listed in the resource table (Figure 27.4).
– meet informally with practitioners to obtain their subjective
assessment of progress to date and problems on the
horizon.
– use earned value analysis (Section 27.6) to assess progress
quantitatively.
139. 139
Progress on an OO Project-I
• Technical milestone: OO analysis completed
• All classes and the class hierarchy have been defined and reviewed.
• Class attributes and operations associated with a class have been defined and reviewed.
• Class relationships (Chapter 8) have been established and reviewed.
• A behavioral model (Chapter 8) has been created and reviewed.
• Reusable classes have been noted.
• Technical milestone: OO design completed
• The set of subsystems (Chapter 9) has been defined and reviewed.
• Classes are allocated to subsystems and reviewed.
• Task allocation has been established and reviewed.
• Responsibilities and collaborations (Chapter 9) have been identified.
• Attributes and operations have been designed and reviewed.
• The communication model has been created and reviewed.
140. 140
Progress on an OO Project-II
• Technical milestone: OO programming completed
• Each new class has been implemented in code from the design model.
• Extracted classes (from a reuse library) have been implemented.
• Prototype or increment has been built.
• Technical milestone: OO testing
• The correctness and completeness of OO analysis and design models has been
reviewed.
• A class-responsibility-collaboration network (Chapter 6) has been developed and
reviewed.
• Test cases are designed and class-level tests (Chapter 19) have been conducted for
each class.
• Test cases are designed and cluster testing (Chapter 19) is completed and the
classes are integrated.
• System level tests have been completed.
141. 141
Earned Value Analysis (EVA)
• Earned value
– is a measure of progress
– enables us to assess the “percent of
completeness” of a project using quantitative
analysis rather than rely on a gut feeling
– “provides accurate and reliable readings of
performance from as early as 15 percent into the
project.” [Fle98]
142. 142
Computing Earned Value-I
• The budgeted cost of work scheduled (BCWS) is determined for each work
task represented in the schedule.
– BCWSi is the effort planned for work task i.
– To determine progress at a given point along the project schedule, the value of
BCWS is the sum of the BCWSi values for all work tasks that should have been
completed by that point in time on the project schedule.
• The BCWS values for all work tasks are summed to derive the budget at
completion, BAC. Hence,
BAC = ∑ (BCWSk) for all tasks k
143. 143
Computing Earned Value-II
• Next, the value for budgeted cost of work performed (BCWP) is
computed.
– The value for BCWP is the sum of the BCWS values for all work tasks that
have actually been completed by a point in time on the project schedule.
• “the distinction between the BCWS and the BCWP is that the former
represents the budget of the activities that were planned to be
completed and the latter represents the budget of the activities that
actually were completed.” [Wil99]
• Given values for BCWS, BAC, and BCWP, important progress indicators
can be computed:
• Schedule performance index, SPI = BCWP/BCWS
• Schedule variance, SV = BCWP – BCWS
• SPI is an indication of the efficiency with which the project is utilizing scheduled
resources.
144. 144
Computing Earned Value-III
• Percent scheduled for completion = BCWS/BAC
– provides an indication of the percentage of work that should have been
completed by time t.
• Percent complete = BCWP/BAC
– provides a quantitative indication of the percent of completeness of the
project at a given point in time, t.
• Actual cost of work performed, ACWP, is the sum of the effort actually
expended on work tasks that have been completed by a point in time on
the project schedule. It is then possible to compute
• Cost performance index, CPI = BCWP/ACWP
• Cost variance, CV = BCWP – ACWP