Software Engineering.pdf

Engineering Add comments

42 Lessons about Software engineering, taken from IIT Kharagpur’s Course Materials.

Contents along with the download links:

  • Module 1 Introduction to Software Engineering
    • Lesson 1 Basic Issues in Software Engineering objectives: Identify the scope and necessity of software engineering ~ Identify the causes of and solutions for software crisis ~ Differentiate a piece of program from a software product. Contents [ Scope and necessity of software engineering ~ Causes of and solutions for software crisis ~ Program vs. software product ~ ]
    • Lesson 2 Structured Programming objectives: Identify the important features of a structured program ~ Identify the important advantages of structured programming over unstructured ones ~ Explain how software design techniques have evolved over the last 50 years ~ Differentiate between exploratory style and modern style of software development. Contents [ Important features of a structured program ~ Important advantages of structured programming ~ Evolution of software design techniques over the last 50 years ~ Exploratory style vs. modern style of software development. ]
  • Module 2 Software Life Cycle Model
    • Lesson 3 Basics of Software Life Cycle and Waterfall Model objectives: Explain what is a life cycle model ~ Explain what problems would occur if no life cycle model is followed ~ Identify the different software life cycle models ~ Identify the different phases of the classical waterfall model ~ Identify the activities undertaken in each phase ~ Identify the shortcomings of the classical waterfall model ~ Identify the phase-entry and phase-exit criteria of each phase. Contents [ Life cycle model ~ The need for a software life cycle model ~ Different software life cycle models ~ Different phases of the classical waterfall model ~ Activities in each phase of the life cycle ~ Shortcomings of the classical waterfall model ~ Phase-entry and phase-exit criteria of each phase ]
    • Lesson 4 Prototyping and Spiral Life Cycle Models objectives: Explain what a prototype is ~ Explain why and when a prototype needs to be developed during software development ~ Identify the situations in which one would prefer to build a prototype ~ State the activities carried out during each phase of a spiral model ~ Identify circumstances under which spiral model should be used for software development ~ Tailor a development process to a specific project. Contents [ Prototype ~ Need for a prototype in software development ~ Examples for prototype model ~ Spiral model ~ Circumstances to use spiral model ~ Comparison of different life-cycle models ~ The following questions have been designed to test the objectives identified for this module: ]
  • Module 3 Requirements Analysis and Specification
    • Lesson 5 Basic concepts in Requirements Analysis and Specification objectives: Explain the role of a system analyst ~ Identify the important parts of SRS document ~ Identify the functional requirements from any given problem description ~ Document the functional requirements from any given problem description ~ Identify the important properties of a good SRS document ~ Identify the important problems that an organization would face if it does not develop an SRS document ~ Identify non-functional requirements from any given problem description ~ Identify the problems that an unstructured specification would create during software development ~ Represent complex conditions in the form of a decision tree ~ Represent complex conditions in the form of decision table. Contents [ Role of a system analyst ~ Parts of a SRS document ~ Identifying functional requirements from a problem description ~ Documenting functional requirements ~ Properties of a good SRS document ~ Problems without a SRS document ~ Identifying non-functional requirements ~ Problems with an unstructured specification ~ Decision tree ~ Decision table ]
    • Lesson 6 Formal Requirements Specification objectives: Explain what a formal technique is ~ Explain what a formal specification language is ~ Differentiate between model-oriented and property-oriented approaches in the context of requirements specification ~ Explain the operational semantics of a formal method ~ Identify the merits of formal requirements specification ~ Identify the limitations of formal requirements specification ~ Develop axiomatic specification of simple problems. Contents [ Formal technique ~ Formal specification language ~ Model-oriented vs. property-oriented approaches ~ Operational semantics ~ Merits of formal requirements specification ~ Limitations of formal requirements specification ~ Axiomatic specification ~ ]
    • Lesson 7 Algebraic Specification objectives: Explain algebraic specification and its use ~ Explain how algebraic specifications are represented ~ Develop algebraic specification of simple problems ~ Identify the basic properties that a good algebraic specification should satisfy ~ State the properties of a structured specification ~ State the advantages and disadvantages of algebraic specifications ~ State the features of an executable specification language (4GL) with suitable examples. Contents [ Algebraic specification ~ Representation of algebraic specification ~ Develop algebraic specification of simple problems ~ Properties of algebraic specifications ~ Structured specification ~ Advantages and disadvantages of algebraic specifications ~ Executable specification language (4GLs). ]
  • Module 4 Software Design Issues
    • Lesson 8 Basic Concepts in Software Design objectives: Identify the software design activities ~ Identify the items to be designed during the preliminary and detailed design activities ~ Identify the primary differences between analysis and design activities ~ Identify the important items developed during the software design phase ~ State the important desirable characteristics of a good software design ~ Identify the necessary features of a design document in order to facilitate understandability. Contents [ Software design and its activities ~ Preliminary and detailed design activities ~ Difference between analysis and design ~ Items developed during the software design phase ~ Characteristics of a good software design ~ Features of a design document ~ ]
    • Lesson 9 An Overview of Current Design Approaches objectives: State what cohesion means ~ Classify the different types of cohesion that a module may possess ~ State what coupling means ~ Classify the different types of coupling between modules ~ State when a module can be called functionally independent of other modules ~ State why functional independence is the key factor for a good software design ~ State the salient features of a function-oriented design approach ~ State the salient features of an object-oriented design approach ~ Differentiate between function-oriented and object-oriented design approach. Contents [ Cohesion ~ Classification of cohesion ~ Coupling ~ Classification of Coupling ~ Functional independence ~ Need for functional independence ~ Function-oriented design ~ Object-oriented design ~ Function-oriented vs. object-oriented design approach ]
  • Module 5 Function-Oriented Software Design
    • Lesson 10 Data Flow Diagrams (DFDs) objectives: Identify the activities carried out during the structured analysis phase ~ Explain what a DFD is ~ Explain why constructing DFDs are important in arriving at a good software design ~ Explain what a data dictionary is ~ Explain the importance of data dictionary ~ Identify whether a DFD is balanced. Contents [ Structured Analysis ~ Data Flow Diagram (DFD) ~ Importance of DFDs in a good software design ~ Data dictionary ~ Importance of data dictionary ~ Balancing a DFD ~ ]
    • Lesson 11 DFD Model of a System objectives: Draw the context diagram of any given problem ~ Draw the DFD model of any given problem ~ Develop the data dictionary for any given problem ~ Identify the common errors that may occur while constructing the DFD model of a system ~ Identify the shortcomings of a DFD model when used as a tool for structured analysis. Contents [ Context diagram ~ DFD model of a system ~ Data dictionary for a DFD model ~ Commonly made errors while constructing a DFD model ~ Shortcomings of a DFD model ]
    • Lesson 12 has the same contents as lesson 13
  • Module 6 Basic Concepts in Object Orientation
    • Lesson 13 Structured Design objectives: Identify the aim of structured design ~ Explain what a structure chart is ~ Differentiate between a structure chart and a flow chart ~ Identify the activities carried out during transform analysis with examples ~ Explain what is meant by transaction analysis. Contents [ Structured Design ~ Structure Chart ~ Structure Chart vs. Flow Chart ~ Transform Analysis ~ Transaction Analysis ]
  • Module 7 Object Modeling using UML
    • Lesson 14 Basic Ideas on UML objectives: Explain what a model is ~ Explain how models are useful ~ Explain what UML means ~ Explain the origin and the acceptance of UML in industry ~ Identify different types of views captured by UML diagrams. Contents [ Model ~ Need for a model ~ Unified Modeling Language (UML) ~ Origin of UML ~ UML diagrams ~ ]
    • Lesson 15 Use Case Model objectives: Identify different use cases of a system ~ Identify the purpose of use cases ~ Represent use cases for a particular system ~ Explain the utility of the use case diagram ~ Factorize use cases into different component use cases ~ Explain the organization of use cases. Contents [ Use Case Model ~ Purpose of use cases ~ Representation of use cases ~ Utility of use case diagrams ~ Factoring of use cases ~ Organization of use cases ~ ]
    • Lesson 16 Class and Interaction Diagrams objectives: Explain the features represented by a class diagram ~ Explain the relationships among different types of classes by means of association ~ Explain the relationships among different types of classes by means of aggregation ~ Explain the relationships among different types of classes by means of composition ~ Draw interaction diagrams for any given problem ~ Explain the tradeoff between inheritance and aggregation/ composition ~ Bring out a comparison of the three relationships: association, aggregation and composition Contents [ Class diagrams ~ Association ~ Aggregation ~ Composition ~ Association vs. Aggregation vs. Composition ~ Inheritance vs. Aggregation/Composition ~ Interaction Diagrams ~ ]
    • Lesson 17 Activity and State Chart Diagram objectives: Draw activity diagrams for any given problem ~ Differentiate between the activity diagrams and procedural flow charts ~ Develop the state chart diagram for any given class ~ Compare activity diagrams with state chart diagrams. Contents [ Activity diagrams ~ Activity diagrams vs. procedural flow charts ~ State chart diagram ~ Activity diagram vs. State chart diagram ]
  • Module 8 Object-Oriented Software Development
    • Lesson 18 Design Patterns objectives: Identify the basic difference between object-oriented analysis (OOA) and object-oriented design (OOD) ~ Explain why design patterns are important in creating good software design ~ Explain what are design patterns ~ Identify pattern solution for a particular problem in terms of class and interaction diagrams ~ Explain expert pattern and circumstances when it can be used ~ Explain creator pattern and circumstances when it can be used ~ Explain controller pattern and circumstances when it can be used ~ Explain facade pattern and circumstances when it can be used ~ Explain model view separation pattern and circumstances when it can be used ~ Explain intermediary pattern (i.e. proxy pattern) and circumstances when it can be used. Contents [ Identify the basic difference between object-oriented analysis (OOA) and object-oriented design (OOD) ~ Explain why design patterns are important in creating good software design ~ Identify pattern solution for a particular problem in terms of class and interaction diagrams ~ ]
    • Lesson 19 Domain Modeling objectives: Explain what is meant by domain modeling ~ Identify the three types of objects identified during domain analysis ~ Explain the purpose of different types of objects identified during domain analysis. Explain how these objects interact among each other ~ Explain at least three approaches for identifying objects in the context of object-oriented design methodology ~ Identify two goals of interaction modeling ~ Explain the CRC cards technique ~ Develop sequence diagram for any given use case ~ Identify how sequence diagrams are useful in developing the class diagram ~ Identify five important criteria for judging the goodness of an object-oriented design. Contents [ Explain what is meant by domain modeling ~ Identify the three types of objects identified during domain analysis ~ Explain the purpose of different types of objects identified during domain analysis. Explain how these objects interact among each other ~ Explain at least three approaches for identifying objects in the context of object-oriented design methodology ~ Explain the CRC cards technique ~ Develop sequence diagram for any given use case ~ Identify how sequence diagrams are useful in developing the class diagram ~ Identify five important criteria for judging the goodness of an object-oriented design. ]
  • Module 9 User Interface Design
    • Lesson 20 Basic Concepts in User Interface Design objectives: Identify five desirable characteristics of a user interface ~ Differentiate between user guidance and online help system ~ Differentiate between a mode-based interface and the modeless interface ~ Compare various characteristics of a GUI with those of a text-based user interface. Contents [ Characteristics of a user interface ~ Mode-based interface vs. modeless interface ~ Graphical User Interface vs. Text-based User Interface ~ ]
    • Lesson 21 Types of User Interfaces objectives: Classify user interfaces into three main types ~ What are the different ways in which menu items can be arranged when the menu choices are large ~ Identify three characteristics of command language-based interface ~ Identify the three disadvantages of command language-based interface ~ Identify three issues in designing a command language-based interface ~ Identify three main types of menus with their features ~ Explain what an iconic interface is ~ What is meant by component-based GUI development style ~ Explain the necessity of component-based GUI development. Contents [ Types of user interfaces ~ Menu-based interfaces ~ Characteristics of command language-based interface ~ Disadvantages of command language-based interface ~ Issues in designing a command language-based interface ~ Types of menus and their features ~ Iconic interface ~ Component-based GUI development ~ Need for component-based GUI development ~ ]
    • Lesson 22 Component-Based GUI Development objectives: Explain what is window in terms of GUI ~ Explain what is meant by window management system ~ Identify the responsibilities of a window manager ~ Identify at least eight primary types of window objects ~ Explain what X Window is ~ Explain why the X Window is so popular ~ Explain architecture of an X System ~ Explain what is meant by visual programming ~ Differentiate between a user-centered design and a design by users ~ Explain implications of human cognition capabilities on user interface design ~ Define seven important steps needed to design a GUI methodology ~ Prepare a check list for user interface inspection. Contents [ Window ~ Window Management System ~ Window Manager ~ Types of widgets (window objects) ~ X-Window ~ Popularity of X-Window ~ Architecture of an X-System ~ Visual Programming ~ Difference between user-centered design and design by users ~ Implications of human cognition capabilities on user interface design ~ GUI design methodology ~ User interface inspection ]
  • Module 10 Coding and Testing
    • Lesson 23 Code Review objectives: Identify the necessity of coding standards ~ Differentiate between coding standards and coding guidelines ~ State what code review is ~ Explain what clean room testing is ~ Explain the necessity of properly documenting software ~ Differentiate between internal documentation and external documentation ~ Explain what is testing ~ Explain the aim of testing ~ Differentiate between verification and validation ~ Explain why random selection of test cases is not effective ~ Differentiate between functional testing and structural testing. Contents [ Coding ~ Coding standards and guidelines ~ Code review ~ Clean room testing ~ Software documentation ~ Program Testing ~ Aim of testing ~ Differentiate between verification and validation ~ Design of test cases ~ Functional testing vs. Structural testing ~ ]
    • Lesson 24 Black-Box Testing objectives: Differentiate between testing in the large and testing in the small ~ Explain what unit testing ~ Explain what black box testing is ~ Identify equivalence classes for any given problem ~ Explain what is meant by boundary value analysis ~ Design test cases corresponding to equivalence class ~ boundary value analysis for any given problem. Contents [ Testing in the large vs. testing in the small ~ Unit Testing ~ Black box testing ~ Test cases for equivalence class testing and boundary value analysis for a problem ~ ]
    • Lesson 25 White-Box Testing objectives: In the context of white box testing strategy, differentiate between stronger testing and complementary testing ~ Design statement coverage test cases for a code segment ~ Design branch coverage test cases for a code segment ~ Design condition coverage test cases for a code segment ~ Design path coverage test cases for a code segment ~ Draw control flow graph for any program ~ Identify the linear independent paths ~ Compute cyclomatic complexity from any control flow graph ~ Explain data flow-based testing ~ Explain mutation testing. Contents [ White box testing ~ Statement coverage ~ Branch coverage ~ Condition coverage ~ Path coverage ~ Control flow graph ~ Linearly independent path ~ Cyclomatic complexity ~ Data flow-based testing ~ Mutation testing ~ ]
    • Lesson 26 Debugging, Integration and System Testing objectives: Explain why debugging is needed ~ Explain three approaches of debugging ~ Explain three guidelines for effective debugging ~ Explain what is meant by a program analysis tool ~ Explain the functions of a static program analysis tool ~ Explain the functions of a dynamic program analysis tool ~ Explain the type of failures detected by integration testing ~ Identify four types of integration test approaches and explain them ~ Differentiate between phased and incremental testing in the context of integration testing ~ What are three types of system testing? Differentiate among them ~ Identify nine types of performance tests that can be performed to check whether the system meets the non-functional requirements identified in the SRS document ~ Explain what is meant by error seeding ~ Explain what functions are performed by regression testing. Contents [ Need for debugging ~ Debugging approaches ~ Debugging guidelines ~ Program analysis tools ~ Static program analysis tools ~ Dynamic program analysis tools ~ Integration testing ~ Integration test approaches ~ Phased vs. incremental testing ~ System testing ~ Performance testing ~ Error seeding ~ Regression testing ]
  • Module 11 Software Project Planning
    • Lesson 27 Project Planning and Project Estimation Techniques objectives: Identify the job responsibilities of a software project manager ~ Identify the necessary skills required in order to perform software project management ~ Identify the essential activities of project planning ~ Determine the different project related estimates performed by a project manager and suitably order those estimates ~ Explain what is meant by Sliding Window Planning ~ Explain what is Software Project Management Plan (SPMP) ~ Identify and explain two metrics for software project size estimation ~ Identify the shortcomings of function point (FP) metric ~ Explain the necessity of feature point metric in the context of project size estimation ~ Identify the types of project-parameter estimation technique. Contents [ Responsibilities of a software project manager ~ Skills necessary for software project management ~ Project planning ~ Precedence ordering among project planning activities ~ Sliding Window Planning ~ Software Project Management Plan (SPMP) ~ Metrics for software project size estimation ~ Shortcomings of function point (FP) metric ~ Feature point metric ~ Project Estimation techniques ~ ]
    • Lesson 28 COCOMO Model objectives: Differentiate among organic, semidetached and embedded software projects ~ Explain basic COCOMO ~ Differentiate between basic COCOMO model and intermediate COCOMO model ~ Explain the complete COCOMO model. Contents [ Organic, Semidetached and Embedded software projects ~ Intermediate COCOMO model ~ Complete COCOMO model ~ ]
    • Lesson 29 Staffing Level Estimation and Scheduling objectives: Identify why careful planning of staffing pattern for a project is so important ~ Determine numerically how change of project duration affects the overall effort and cost ~ Identify five necessary tasks taken by a project manager in order to perform project scheduling ~ Explain the usefulness of work breakdown structure ~ Explain activity networks and critical path method ~ Develop the Gantt chart for a project ~ Develop PERT chart for a project. Contents [ Staffing level estimation ~ Effect of schedule change on cost ~ Project scheduling ~ Work breakdown structure ~ Activity networks and critical path method ~ Gantt chart ~ PERT chart ]
  • Module 12 Software Project Monitoring and Control
    • Lesson 30 Organization and Team Structures objectives: I Explain the necessity of a suitable organization structure ~ Differentiate between functional format and project format in the context of organization structure ~ Identify the advantages of a functional organization over a project organization ~ Explain why the functional format is not suitable for small organizations handling just one or two projects ~ Identify the important types of team structures of an organization ~ Explain what is meant by egoless programming technique ~ Identify the characteristics of a good software engineer. Contents [ Organization structure ~ Functional format vs. project format ~ Advantages of functional organization over project organization ~ Unsuitability of functional format in small organizations ~ Team structures ~ Egoless programming technique ~ Characteristics of a good software engineer ]
    • Lesson 31 Risk Management and Software Configuration Management objectives: Identify the main categories of risks which can affect a software project ~ Explain how to assess a project risk ~ Identify the main strategies to plan for risk containment ~ Explain what risk leverage is ~ Explain how to handle the risk of schedule slippage ~ Explain what is meant by configuration of a software product ~ Differentiate among release, version and revision of a software product ~ Explain the necessity of software configuration management ~ Identify the principal activities of software configuration management ~ Identify the activities carried out during configuration identification ~ Identify the activities carried out during configuration control ~ Identify the popular configuration management tools. Contents [ Risk management ~ Risk assessment ~ Risk containment ~ Risk leverage ~ Risk related to schedule slippage ~ Software configuration management ~ Release vs. Version vs. Revision ~ Necessity of software configuration management ~ Software configuration management activities ~ Configuration identification ~ Configuration control ~ Configuration management tools ~ ]
  • Module 13 Software Reliability and Quality Management
    • Lesson 32 Software Reliability Issues objectives: Differentiate between a repeatable software development organization and a non-repeatable software development organization ~ What is the relationship between the number of latent errors in a software system and its reliability? ~ Identify the main reasons for why software reliability is difficult to measure ~ Explain how the characteristics of hardware reliability and software reliability differ ~ Identify the reliability metrics which can be used to quantify the reliability of software products ~ Identify the different types of failures of software products ~ Explain the reliability growth models of a software product. Contents [ Repeatable vs. non-repeatable software development organization ~ Software reliability ~ Reasons for software reliability being difficult to measure ~ Hardware reliability vs. software reliability differ ~ Reliability metrics ~ Classification of software failures ~ Reliability growth models ~ ]
    • Lesson 33 Statistical Testing and Software Quality Management objectives: Identify the primary objective of statistical testing ~ Define what is meant by the operation profile of a software product ~ Identify the steps in which statistical testing is performed on a software product ~ Identify the advantages and disadvantages of statistical testing ~ Identify the main quality factors of a software product ~ Explain what is meant by quality management system ~ Identify the phases over which quality management system has evolved in the last century. Contents [ Statistical testing ~ Operation profile ~ Steps in statistical testing ~ Advantages and disadvantages of statistical testing ~ Software Quality ~ Software quality management system ~ Evolution of quality management system ~ ]
    • Lesson 34 ISO 9000 objectives: State what is meant by ISO 9000 certification ~ Identify the different industries to which the different types of ISO 9000 quality standards can be applied ~ Differentiate between the characteristics of software products and other type of products that make managing a software development effort difficult ~ Identify the reasons why obtaining ISO 9000 certification is beneficial to a software development organization ~ Explain the main requirements that a software development organization must satisfy for getting ISO 9001 certification ~ Identify the salient features of ISO 9001 certification ~ Identify the shortcomings of ISO 9000 certification. Contents [ ISO 9000 certification ~ Types of ISO 9000 quality standards ~ Software products vs. other products ~ Need for obtaining ISO 9000 certification ~ Summary of ISO 9001 certification ~ Salient features of ISO 9001 certification ~ Shortcomings of ISO 9000 certification ~ ]
    • Lesson 35 SEI CMM objectives: Identify the different levels of SEI Capability Maturity Model ~ Explain the key process areas of a software organization provided by SEI CMM model ~ Differentiate between ISO 9000 certification and SEI CMM ~ Explain the type of systems to which the SEI CMM model of quality management is applicable ~ Explain what personal software process is ~ Explain what six sigma is. Contents [ SEI Capability Maturity Model ~ Key process areas (KPA) of a software organization ~ ISO 9000 certification vs. SEI/CMM ~ Applicability of SEI CMM to organizations ~ Personal software process ~ Six sigma ]
  • Module 14 Software Maintenance
    • Lesson 36 Characteristics of Software Maintenance objectives: Explain the necessity of software maintenance ~ Identify the types of software maintenance ~ Identify the disadvantages associated with software maintenance ~ Explain what is meant by software reverse engineering ~ What are legacy software products? Identify the problems in their maintenance ~ Identify the factors upon which software maintenance activities depend ~ Identify the process models for software maintenance ~ Explain what is meant by software reengineering ~ Estimate the approximate maintenance cost of a software product. Contents [ Necessity of software maintenance ~ Types of software maintenance ~ Problems associated with software maintenance ~ Software reverse engineering ~ Legacy software products ~ Factors on which software maintenance activities depend ~ Software maintenance process models ~ Software reengineering ~ Estimation of approximate maintenance cost ]
  • Module 15 Computer Aided Software Engineering
    • Lesson 37 Basic Ideas on CASE Tools objectives: What is meant by CASE tool? ~ Identify the primary reasons for using a CASE tool ~ What is meant by a CASE environment? ~ Differentiate in between a CASE environment and a programming environment ~ Identify the benefits of a CASE environment ~ Identify the features of a prototyping CASE tool ~ Identify the features that a good prototyping CASE tool should support ~ Identify the supports that are typically available from CASE tools in order to perform structured analysis and software design activity ~ Identify the support that might be available from CASE tools during code generation ~ Identify the features of a test case generation CASE tool. Contents [ CASE tool and its scope ~ Reasons for using CASE tools ~ CASE environment ~ CASE environment vs programming environment ~ Benefits of CASE ~ Requirements of a prototyping CASE tool ~ Features of a good prototyping CASE tool ~ Structured analysis and design with CASE tools ~ Code generation and CASE tools ~ Test case generation CASE tool ~ ]
    • Lesson 38 Different Characteristics of CASE Tools objectives: Identify hardware and environmental requirements for a CASE tool ~ Identify the software documentation support that might be available from CASE tools ~ Identify the two project management supports that should be available from CASE tools ~ Identify the support that needs to be provided by CASE tools for interfacing with other CASE tools ~ Identify the two software reverse engineering supports that should be available from CASE tools ~ Identify the wo features that might be supported by data dictionary interface of a CASE environment ~ Identify the non-traditional features supported by second generation CASE tools ~ Explain the architecture of a CASE environment with the help of a suitable diagram. Contents [ Hardware and environmental requirements ~ Documentation support ~ Project management support ~ External interface ~ Reverse engineering ~ Data dictionary interface ~ Second-generation CASE tool ~ Architecture of a CASE environment ]
  • Module 16 Software Reuse
    • Lesson 39 Basic Ideas on Software Reuse objectives: Explain the advantages of software reuse ~ Identify the artifacts that can be reused during software development ~ Explain the pros and cons of knowledge reused ~ Explain why reuse of commonly used mathematical functions is easy to achieve ~ Identify the basic issues that must be clearly addressed for starting any reuse program ~ Explain what is meant by domain analysis. Contents [ Advantages of software reuse ~ Artifacts that can be reused ~ Pros and cons of knowledge reuse ~ Easiness of reuse of mathematical functions ~ Basic issues in any reuse program ~ Domain analysis ~ ]
    • Lesson 40 Reuse Approach objectives: Explain a scheme by which software reusable components can be satisfactorily classified ~ Search an item from the domain repository ~ Explain how a reuse repository can be maintained ~ Explain what is meant by an application generator ~ Identify the advantages of using an application generator compared to parameterized programs ~ Identify the shortcomings of application generator ~ Identify the steps that can be adopted for achieving organization-level reuse ~ Identify the non-technical factors that inhibit an effective reuse program. Contents [ Components classification ~ Searching ~ Repository maintenance ~ Application generator ~ Advantages of application generators ~ Shortcomings of application generator ~ Re-use at organization level ~ Factors that inhibit an effective reuse program ]
  • Module 17 Client-Server Software Development
    • Lesson 41 Basic Ideas on Client-Server Software Development and Client-Server Architecture objectives: Explain what is a client-server software ~ Explain the advantages of client-server software over centralized solutions ~ Explain the factors responsible for making client-server solutions feasible, affordable, and popular in recent times ~ Identify the advantages of client-server software development compared to monolithic ones ~ Identify the disadvantages of client-server software ~ Differentiate between host-slave computing and client-server computing. Give an example for each ~ Explain the two-tier client-server architecture ~ Explain the limitations of two-tier client-server architecture ~ Explain three-tier client-server architecture ~ Identify the functions of middleware ~ Identify the popular middleware standards. Contents [ Client-server software ~ Advantages of client-server software ~ Factors for feasibility and popularity of client-server solutions ~ Advantages of client-server software development ~ Disadvantages of client-server software ~ Host-slave computing vs. client-server computing ~ Two-tier client-server architecture ~ Limitations of two-tier client-server architecture ~ Three-tier client-server architecture ~ Functions of middleware ~ Popular middleware standards ~ ]
    • Lesson 42 CORBA and COM/DCOM objectives: Explain what Common Object Request Broker Architecture (CORBA) is ~ Explain CORBA reference model ~ Explain CORBA architecture ~ Identify the functions of Object Request Broker (ORB) ~ Identify the commercial ORBs ~ Explain what is stub ~ Explain Dynamic Invocation Interface (DII) in CORBA ~ Explain what is Component Object Model (COM) ~ Explain what is Distributed Component Object Model (DCOM) ~ Explain Inter-ORB communication ~ Identify the features of General Inter-ORB Protocol (GIOP) ~ Differentiate between CORBA based development and COM/DCOM development. Contents [ Common Object Request Broker Architecture (CORBA) ~ CORBA reference model ~ Explain CORBA architecture ~ Functions of Object Request Broker (ORB) ~ Commercial ORBs ~ Steps to develop application in CORBA ~ Dynamic Invocation Interface (DII) in CORBA ~ Component Object Model (COM) ~ Distributed Component Object Model (DCOM) ~ Inter-ORB communication ~ Features of General Inter-ORB Protocol (GIOP) ~ CORBA vs. COM/DCOM ]

Leave a Reply

You must be logged in to post a comment.





WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Login