Software Engineering Program Information - PowerPoint PPT Presentation

1 / 86
About This Presentation
Title:

Software Engineering Program Information

Description:

Check this site for up-to-date program information. This should be your primary ... When sending email to me, please prepend your subject line with SENG520 ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 87
Provided by: K26
Category:

less

Transcript and Presenter's Notes

Title: Software Engineering Program Information


1
Software Engineering Program Information
For New Students Fall 2007
Save these notes for future reference!
2
SENG Program Info
Program Coordinator Jim Mooney Lane Dept. of
CSEE Rm 941 ESB PO Box 6109 Morgantown WV
26506-6109 (304) 293-0405 X2562 jdm_at_csee.wvu.edu
3
SENG Program Info
SENG Program website http//www.lcsee.cemr.wvu.ed
u/grad/degree-info.php?degreemsse
Check this site for up-to-date program
information. This should be your primary
reference for the program! If you find anything
incorrect or missing please let me know!
4
SENG Program info
Whats on the website?
1. General information about the program
  • Admission Requirements
  • Application Procedures
  • Program Requirements
  • Graduation Procedures

5
SENG Program info
Whats on the website?
2. Course information
  • Course Info and syllabi (general course info for
    current and upcoming semesters)
  • Current Classes (link to current class slides and
    web resources)

6
SENG Program info
Whats on the website?
3. Online forms
  • Plan of Study (download and edit)
  • Transfer from Non-degree status (complete online)
  • Certificate Request (complete online)

7
SENG Program info
Registration notes
  • Register online using the STAR system
  • A term PIN number is required for each student
    every term except your first.
  • E-mail me courses you are planning to take
  • I will e-mail you your PIN number

8
SENG Program info
Registration notes
  • A new PIN is needed every term!
  • EXCEPTION PINs are the same for each summer
    and the following fall.
  • E-mail me in case of any problems.

9
SENG Program info
Registration notes
  • Allow enough time -- request your PIN early!
  • You cannot register online after classes start!

10
SENG Program info
Registration notes
Out of state students may pay in-state fees only
if you register exclusively for web-based
courses! There is an extended learning fee
required for all students taking extended
learning courses. There are no tuition waivers
available for SENG students.
11
SENG Program info
Registration notes
For questions on costs, tuition, fees and
payments, etc. contact Extended Learning
(1-800-2LEARN2). I do not have answers to other
financial questions.
12
SENG Program info
Are you presently a non-degree student?
  • If you wish to transfer to the MSSE program, you
    should apply during the semester in which you
    will be completing 12 credits.
  • Do not delay -- only 12 non-degree credits can be
    transferred!

13
SENG Program info
Are you presently a non-degree student?
  • Your transfer will be processed by the end of the
    term. Check your status on STAR -- if your major
    is listed as Software Engineering, your transfer
    is complete.
  • This may be the only confirmation you receive!

14
SENG Program info
Applying from non-degree status
  • To apply, please do all of the following
  • If you have not already done so, submit a resume
    that documents at least 3 years experience in
    software development to
  • Jim Mooney -- MSSE
  • Lane Dept. of CSEE
  • PO Box 6109
  • Morgantown WV 26506-6109

15
SENG Program info
Applying from non-degree status (cont.)
  • If you have not already done so, submit three
    work-related letters of reference to the same
    address
  • Complete the online transfer form

16
SENG Program info
Are you interested in the SENG Certificate?
  • The certificate is optional for MSSE students!
  • Complete 5 required classes
  • Complete the experience paper (see website link
    for details)
  • Apply for the certificate in the semester you
    complete these requirements, or later

17
SENG Program info
Are you interested in the SENG Certificate?
  • You may obtain the certificate at the end of the
    semester in which you qualify
  • Certificate recipients need not complete the MSSE
  • The certificate designation will appear on your
    transcript when/if you graduate

18
SENG Program info
Tools and Resources Adobe Connect (formerly
Macromedia Breeze)
The Adobe Connect distance learning system is
used for live interactive class participation or
later class playback. Classes are accessed
through the CURRENT CLASSES link on the MSSE main
web page. http//elearn.cerc.wvu.edu
19
SENG Program info
Good Luck! Save these notes! Use the website!
Most common questions will be answered there!
20
Course Overview
  • Software Analysis and Design
  • SENG 520 CRN 82055 (LEC)
  • SENG 520 CRN 82832 (WEB)
  • Lecture Wednesday 1800 2030, Challenger Room
    NASA IVV Facility
  • http//elearn.cerc.wvu.edu/520/default.htm
  • Instructor
  • Kenneth A. Costello / Kenneth.Costello_at_gmail.com
    / (304) 367-8343
  • Office Hours Any Time, call for appointment
  • Course Prerequisites
  • Experience in the software domain
  • General Software Engineering Practices and
    Procedures
  • Understanding or experience with one programming
    language is an asset but not a requirement
  • Material
  • Class notes information is gathered from many
    sources and references will be provided
    throughout the class
  • Drawing program some aspects of the class will
    require you to generate models and diagrams for
    tests or assignments.

21
SENG 520 Course Overview (cont)
  • Course Grading
  • Assignments 40
  • Midterm Exam 30
  • Final Exam 30
  • Academic Dishonesty
  • All work is to be done on an INDIVIDUAL basis.
    Evidence to the contrary will be regarded as
    academic dishonesty and will be dealt with
    swiftly and decisively in accordance with the
    provisions outlined in the WVU Graduate catalog.

22
SENG 520 Course Overview (cont)
  • Generally assignments and tests will be due by
    the end of the Tuesday due date
  • The late penalty is 20 per week
  • The late penalty becomes 20 at the end of class
    on Tuesday
  • Extensions can be granted but you need to tell me
    as soon as possible
  • A request made on the due date may be refused

23
SENG 520 Course Overview (cont)
  • "West Virginia University is committed to social
    justice and does not discriminate on the basis of
    race, gender, age, disability, veteran status,
    religion, sexual orientation, color or national
    origin. I concur with that commitment and expect
    to maintain a positive learning environment based
    upon open communication, mutual respect, and
    nondiscrimination. Any suggestions as to how to
    further such a positive and open environment in
    this class will be appreciated and given serious
    consideration. If you are a person with a
    disability and anticipate needing any type of
    accommodation in order to participate in this
    class, please advise in advance and make
    appropriate arrangement with the Disability
    Services (293-6700).
  • Note
  • If you are a learning, sensory, or physically
    disabled student and feel that you could benefit
    from special assistance in regards to lectures,
    reading assignments or testing, please contact
    your instructor after class or during office
    hours. The first week in the semester is the best
    time to inform your instructor of any disability.

24
SENG 520 Communication
  • Primarily through email
  • Everyone registered is given a WVU mix account,
    listed with your registration
  • I can use that account to contact you in regards
    to grades, class cancellation etc.
  • If you have a different email that you would
    prefer please let me know immediately
  • You can even give me more than one email address
    and I will use both
  • When sending email to me, please prepend your
    subject line with SENG520
  • It helps my filter catch and move your message to
    some place that I am more apt to see it right
    away

25
Software Analysis and Design
  • Objectives
  • The goal of this class is to provide insight into
    the issues surrounding specification and design
    of large systems with a focus on the software in
    that system
  • Goals
  • Analysis
  • Describe the activities of software requirements
    analysis
  • Develop a specification of requirements for a
    software system from a customer/user
  • Be able to use various diagrammatic techniques to
    document models of requirements
  • Design
  • Understand and be able to apply various methods
    of software design
  • Understand how software design/architecture can
    affect the overall system
  • Develop an under
  • Overall
  • Understand how software engineering fits within
    system engineering
  • Develop an understanding of what software
    engineering is and how it fits within an overall
    system development
  • Develop an awareness of some of the challenges
    associated with developing software for large
    integrated projects
  • Configuration Management
  • Verification and Validation
  • Quality assurance
  • Software metrics

26
Tonight
  • What is software engineering?
  • What is a software life cycle?
  • Software engineering principles
  • Software engineering tasks

27
Software Engineering
  • The term emerged at a conference in the late
    1960s that was held to discuss the problems with
    software (the software crisis)
  • So what was going on that led to a software
    crisis?
  • A Brief History of Software

28
A Software Timeline
  • 1948-64
  • Custom software with limited distribution
  • 1960-75
  • Multi-user -- emergence of Product software
  • 1972-88
  • Low-cost Hardware
  • Users directly interact with system
  • Product Software becomes necessary
  • 1985- Now
  • Powerful desktop systems

29
The Software Crisis
  • Due to hardware breakthroughs and cost reductions
    there was an increased demand for QUALITY
    software, built at a reasonable cost.

30
The Software Crisis (2)
  • 1960s
  • Personalized software was impossible to maintain
  • 1990s
  • Ability to build new programs can not keep up
    with the demand hardware sophistication has
    outpaced softwares ability to tap hardwares
    potential

31
The Software Crisis (3)
  • What was needed was an approach that allowed for
    a consistent systematic method of building
    software
  • Computer Science
  • Computer scientists study what programs can and
    cannot do, how programs can efficiently perform
    specific tasks, how programs should store and
    retrieve specific kinds of information, how
    programs might behave intelligently and how
    programs and people should communicate with each
    other
  • Engineering
  • Engineers create solutions to problems or improve
    upon existing solutions
  • Engineering is concerned with the design of a
    solution to a practical problem. A scientist may
    ask "why?" and proceed to research the answer to
    the question. By contrast, engineers want to know
    how to solve a problem, and how to implement that
    solution.
  • The development of software needed to be taken
    out of the realm of investigation and moved into
    the realm of creation

The development of software needed to be taken
out of the realm of investigation and moved into
the realm of creation
32
The Software Crisis (4)
  • Fundamental Problem
  • The real issue was the lack of ability to manage
    the software process (Was there a software
    process in the late 1960s?)
  • Engineering, in other disciplines, had set rules
    and guidelines that you followed to develop
    solutions to problems
  • The goal was to bring that rigor to software
    development
  • Thus Software Engineering was born

33
Industry Questions about Software
  • Why does it take so long to develop programs?
  • Why are costs so high?
  • Why does it go out with errors?
  • Why cant we measure progress?

34
Product Software
  • Program
  • Run by author for his computer
  • Programming Product
  • Can be run by anyone, under many environments,
    and with many sets of data
  • Therefore
  • Must be written in a generalized fashion
  • Must be thoroughly tested and documented
  • Costs 3 times as much to develop

35
Product Software (2)
  • Programming System
  • Collection of interacting programs which are
    coordinated and disciplined which when assembled
    the entire facility can perform large tasks
  • Therefore
  • Every I/O must conform to standard interfaces
  • Uses a prescribed budget of memory, I/O devices,
    and computer time
  • Tested in conjunction with other pieces and
    combinations-- integration
  • Costs 3 times as much as a program to develop

36
Product Software (3)
  • Programming System Product
  • Multiple Users
  • Multiple Developers
  • Multiple Maintainers
  • Costs 9 times as much as a program to develop
  • Requires a systematic approach

37
Why are you building software?
  • Software can not exist by itself
  • Needs associated hardware in order to be used
  • Software is always part of a system
  • A system well a system is anything
  • But your software is often derived from a system
    perspective

38
System Life Cycle Process
  • Provide context for software engineering
  • System development
  • 4 stages, many processes
  • Concept/Exploration
  • Definition/Risk Reduction
  • Engineering and Manufacturing Development
  • Production, Field Deployment and Operational
    Support
  • Where does software engineering occur?
  • From a system perspective often not until EMD,
    very dependent on the type of system

39
What then is software engineering?
  • Many definitions rigor in software development
  • Boehm - The practical application of scientific
    knowledge to the design and construction of
    computer programs and their associated
    documentation required to develop, operate and
    maintain them.
  • IEEE Standards Glossary -- The systematic
    approach to the development, operation,
    maintenance and retirement of software.
  • IEEE Standards Glossary
  • Software-- Computer programs, procedures, rules
    and possibly documentation and data pertaining to
    them.

40
Software Engineering Definitions (cont)
  • Fairley
  • Software Engineering Concepts --
  • Software Engineering is the technological and
    managerial discipline concerned with the
    systematic production and maintenance of software
    products that are developed on time and within
    cost estimates.
  • Summerville
  • Software engineering is an engineering discipline
    concerned with the practical problems of
    developing large software systems. It is not
    just programming nor is it computer science.
    Software engineers must be professionals who use
    theory from other disciplines and apply this
    cost-effectively to solve difficult problems.

41
Goal of Software Engineering
  • Improve the quality of software products and to
    increase the productivity and job satisfaction of
    software engineers
  • Software engineering brings structure and control
    to a discipline that often is thought of as being
    out of control
  • Based on defined approaches and as applicable to
    old school as well as new school development
    approaches

42
Skills of Software Engineer
  • Good oral and written communication
  • Technical knowledge
  • Project management
  • Appreciation of User

43
Characteristics of Engineered Software
  • Built by Teams
  • Uses engineering principles
  • Provides formality to the process
  • Provides approaches to show what the software
    does and what it does not do
  • Technical and non-technical aspects

44
Key Attributes of Engineered Systems
  • Maintainability
  • Reliability
  • Efficiency
  • User Interface
  • Security
  • Necessary to strike a balance

45
Engineered Software
  • Purpose -- Product Software
  • Make the computer easy to use
  • Ratio of function to complexity is the ultimate
    task of system design, neither alone represents a
    good system.

46
Software Development Life Cycles
  • Cycle of activities involved in the development,
    use and maintenance of software
  • Sequence of stages which categorize and control
    activities
  • A Process

47
Software Development Life Cycles (2)
  • Software Process
  • IEEE Software Process is a set of activities,
    methods, practices, and transformations that
    people use to develop and maintain software and
    the associated products

48
Software Development Life Cycles (3)
  • System Life Cycle
  • Concept/Exploration
  • Most are replacements for existing systems
  • Program Definition/Risk Reduction
  • Engineering Manufacturing and Development
  • Production/Field deployment
  • Operational support and Retirement

49
Software Development Life Cycles (4)
  • Build and Fix
  • Classic Waterfall
  • Prototyping
  • Successive Versions
  • Spiral Model
  • Agile processes

50
Build and Fix
51
Classic Waterfall Life Cycle
52
Prototyping
53
Successive Versions
54
Spiral Model
55
Agile Processes
  • A concept rather than a process
  • Focuses on a customer/people oriented approach
    rather than a process approach
  • However, many of the agile methods have strong
    process control
  • Strong planning support
  • Structured approaches to getting work done
  • Time box constraints

56
Types of Systems
57
Classification of Systems The Users Perception
  • System Software
  • Real-time Software
  • Business - Application Software
  • Engineering and Scientific Software
  • Embedded Software
  • PC Software
  • AI- Knowledge Based-Expert Systems

58
System Software
  • Service programs for the computer
  • Heavy interaction with hardware
  • Heavy usage by multiple users
  • Concurrent operations
  • Resource scheduling and sharing
  • Multiple external interfaces

59
Real-time Software
  • Measures/analyzes/controls real world events
  • Data gathering -- from the environment
  • Transform information
  • Monitors/coordinates
  • Response time is critical (usually)

60
Business Application Software
  • Largest set of software
  • Accesses one or more large databases
  • Facilitates decision making
  • Interactive
  • Human interface important

61
Engineering and Scientific
  • Number crunchers-- lots of computer time
  • CAD -- Computer Aided Design
  • Human interface is often less important
  • Should it be?

62
Embedded Software
  • ROM only
  • Control products
  • Very limited functionality
  • This is changing however
  • Use of FPGAs has allowed embedded software to
    take on more and more responsibilities
  • Where do you draw the line between hardware and
    software?

63
PC Software
  • General purpose products
  • Most innovative
  • Usability is usually paramount
  • Marketing and time to market is very important

64
AI - Knowledge Based -- Expert Systems
  • Load it with information (knowledge) to make
    choices
  • Pattern recognition (neural networks)
  • Theorem proving
  • Game playing

65
Classification of Systems -- run-time
characteristics
  • Batch Systems
  • On-line Systems
  • Real-time Systems

66
Batch Systems
  • System is implemented after gathering all the
    data
  • Implemented generally at predefined time periods
    -- daily, monthly
  • Utilizes system resources efficiently
  • Examples
  • Payroll System
  • Compiler

67
On-line/Reactive Systems
  • System runs continuously
  • System waits for user input
  • Example
  • Cash Machine

68
Real-time Systems
  • A real-time system is one that contains processes
    that operate concurrently with a regular or
    predictable time relationship with independent
    external or temporal events
  • Response time is critical (usually)
  • Examples
  • Air Traffic Control System
  • Elevator

69
Classification of Systems--Developers Perspective
  • Process-Oriented Systems
  • Data-Oriented Systems
  • Object-Oriented Systems

70
Process-Oriented System
  • Data Flow Approach
  • Data and Control Flows
  • Processes
  • Data and Control Stores
  • Process Specifications
  • Entity-Relationship Diagrams
  • Data Dictionary

71
Data-Oriented Systems
  • Information Modeling
  • Objects
  • Attributes
  • Relationships
  • Supertypes/Subtypes.

72
Object-Oriented Systems
  • Object-Oriented Approach
  • Classes, Methods, Attributes
  • Inheritance
  • Associations
  • Messages ...

73
Developers Perspective
74
Principles of Software Engineering
75
Principles of Software Engineering
  • Principle of Abstraction
  • Principle of Formality
  • Divide and Conquer Concept
  • Hierarchical Ordering Concept
  • Principle of Information Hiding
  • Principle of Localization
  • Principle of Conceptual Integrity
  • Principle of Completeness
  • Principle of Logical Independence

76
Principle of Abstraction
  • To solve a problem, separate the aspects that are
    tied to a particular reality in order to
    represent the problem in a simplified general
    form

77
Principle of Formality
  • Follow a rigorous, methodical approach to solve a
    problem

78
Divide and Conquer Concept
  • Solve a difficult problem by dividing the problem
    into a set of smaller, independent problems that
    are easier to understand and solve

79
Hierarchical Ordering Concept
  • Organize the components of a solution into a tree
    like hierarchical structure. Then the solution
    can be understood and constructed level by level,
    each new level adding more detail

80
Principle of Information Hiding
  • Hide the inessential information. Enable a module
    to see only the information needed for that
    module

81
Principle of Localization
  • Place logically related items close together

82
Principle of Conceptual Integrity
  • Follow a consistent design philosophy and
    architecture

83
Principle of Completeness
  • Check to make certain that nothing is left out

84
Principle of Logical Independence
  • In analysis and design concentrate on the logical
    functions to be accomplished independently of the
    physical implementation

85
Tasks of Software Engineering
86
Some of the tasks needed during development
  • Planning
  • Identify the customers
  • Identify the products needed
  • Feasible?
  • Method to monitor progress
  • Development
  • Specification
  • Design and implement
  • Test, debug, and integrate
  • Services needed
  • Annotated tools
  • Computer resources
  • Configuration management
  • Product distribution
  • Administrative support
  • Publications
  • Users guide, installation guide
  • Principles of operation, specification
  • Design, module documentation, test plans, etc
  • Quality Assurance
  • Verification and validation
  • Configuration Management
  • Support
  • Promote the product
  • Installation and training users
  • Liaison with user
  • Technical support
  • Maintenance
  • Error correction
  • Enhancements
  • Adaptation to new environment
  • Preventive
Write a Comment
User Comments (0)
About PowerShow.com