16
mputer Science Software Engineering Slide 1 Review The need for software engineering Processes Waterfall Iterative waterfall Evolutionary Formal systems Reuse-oriented Iterative • Incremental • Spiral

Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 1

Review The need for software engineering Processes

• Waterfall

• Iterative waterfall

• Evolutionary

• Formal systems

• Reuse-oriented

• Iterative• Incremental

• Spiral

Page 2: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 2

Barzun's Laws of Learning The simple but difficult arts of paying attention, copying accurately, following an argument, detecting an ambiguity or a false inference, testing guesses by summoning up contrary instances, organizing one's time and one's thought for study -- all these arts -- cannot be taught in the air but only through the difficulties of a defined subject. They cannot be taught in one course or one year, but must be acquired gradually in dozens of connections.

Page 3: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 3

The software design process

Architecturaldesign

Abstractspecification

Interfacedesign

Componentdesign

Datastructuredesign

Algorithmdesign

Systemarchitecture

Softwarespecification

Interfacespecification

Componentspecification

Datastructure

specification

Algorithmspecification

Requirementsspecification

Design activities

Design products

Page 4: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 4

The testing process

Sub-systemtesting

Moduletesting

Unittesting

Systemtesting

Acceptancetesting

Componenttesting

Integration testing Usertesting

Page 5: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 5

System evolution

Assess existingsystems

Define systemrequirements

Propose systemchanges

Modifysystems

Newsystem

Existingsystems

Page 6: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 6

Requirements document Supported activity list HCI description Solved problems list Information sources list Information-requesting organizations Checks and Balances Security and fault-tolerance requirements Interoperating systems list Estimates of information capacity and growth Project time frame Prioritization of requirements Ethical concerns

Page 7: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 7

Eliciting and Validating Requirements – Start of Design

Informal Scenarios • Detailed walkthrough of scenario

UCCD – Use-case centered design Use-cases – Use-case diagrams Scenarios Primary Classes

• Nouns classes

• Properties (State, service, multiple/common attributes/methods, essential requirement)

Page 8: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 8

UML Use-Case diagrams Deployment Diagrams Class Diagrams State Diagrams Sequence diagrams Object diagrams

Page 9: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 9

Architecture Skeleton

Top level design of system Persistence HCI

Page 10: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 10

Design with Reuse Component-based development

• Provides/Requires interfaces

• Frameworks - MVC

Application families• Resource management system – specialized for LMS

Design Patterns• Observer

Page 11: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 11

Architecture - Distributed Performance Security Safety Availability Maintainability Models

• Repository, Client-server, centralized/event-triggered control, Object Models

Page 12: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 12

Distributed Systems Client-server

• Server-consumer model

• Data management, application processing, presentation

• Thin and fat clients

Three Tier Architectures Distributed objects

• Peer to peer

• CORBA

Page 13: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 13

ORB-based object communications

o1 o2

S (o1) S (o2)

IDLstub

IDLskeleton

Object Request Broker

Page 14: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 14

Verification and Validation Verification

• Are we building the product right?

Validation• Are we building the right product?

Unit and integration testing Black box versus White box testing

Page 15: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 15

EngineerSoftware Engineer

Responsibilities:·Design and develop in C tests to validate ASIC hardware and software features and functionality·Design and develop tests for hardware and software specification conformance·Analyze protocol and software design - code, and create detailed test descriptions ·Develop software and/or system configurations to execute test descriptions·Execute test in VERA simulator, on FPGA boards, or on a system-level box

Key Role: Contribute significantly to a project involving the design and development of software for a scanning and message forwarding system. Qualifications:

BS or MS degree in CS 2+ years of experience in C++ programming Experience with Java and object-oriented analysis and design Experience with Sun workstations running Solaris Experience with using tools such as Rogue Wave and Purify

Page 16: Computer ScienceSoftware Engineering Slide 1 Review l The need for software engineering l Processes Waterfall Iterative waterfall Evolutionary Formal systems

Computer Science Software Engineering Slide 16

More :The responsibilities of this role include:Defining the functional requirements of the ApplicationsSoftware solution and designs solution to meet those requirementsAnalyzing situations or data to determine feasibility of design within time and cost requirementsDesigning and developing Software applicationsConsulting with other engineering staff to evaluate interface between hardware and software to maximize performance of the applicationsWriting code for individual components of Multi-Tier applicationsBuilding and executing Database Server scriptsMaintaining documentation of code and performs bug fixesConsulting with clients concerning maintenance of applications