software engineering

34
Software Engineering Software Engineering Yesterday, Today and Tomorrow Joseph P Brazy Sr Systems Engineer Fairmont Sr High School Computer Club Fairmont, WV Weds. Nov 17, 1999

Upload: databaseguys

Post on 29-Aug-2014

831 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Software Engineering

Software EngineeringYesterday, Today and Tomorrow

Joseph P BrazySr Systems Engineer

Fairmont Sr High SchoolComputer ClubFairmont, WVWeds. Nov 17, 1999

Today’s Topics

• What is Software Engineering(SE)?• What are some Software Engineering Jobs• What are some SE products and processes • Some Internet Resources for SE• Summary

What is Software Engineering?

• Textbooks tend not to give definitions, but instead spend their introductory chapters explaining characteristics of the discipline. Interesting phrases include:– A discipline whose aim is the production of quality

software, delivered on time, within budget, and satisfying users' needs.

– The specification, development, management, and evolution of software systems.

– Designing and developing high-quality software

Source: http://www.faqs.org/faqs/software-eng/part1/

Software Engineering Yesterday:

• Software Engineering (term wasn’t used)

• Computer Scientists (often did both hardware and software)

• Internet Forefathers– Leonard Kleinrock, a computer scientist

at UCLA, stands next to the refrigerator-sized computer that made the first-ever connection in 1969 to what was to become the Internet. (AP)

– The UCLA team of graduate students in 1969 included future Internet leaders like Vinton Cerf, who later helped create the Internet's common language (TCP/IP), and the late Jonathan Postel, who pioneered its address system

– Robert Kahn – computer language creator (TCP/IP)

– Lawrence Roberts - the designer and developer of ARPANET

Leonard Kleinrock

Software Engineering Today:

• Software Engineering – An engineering discipline that includes these processes

and products:– Software Engineering Management– Software Requirements Analysis– Software Configuration Management – Software Design– Software Construction – Software Testing– Software Engineering Infrastructure – Software Engineering Process – Software Evolution and Maintenance – Software Quality Analysis

Source: SWEBOK–http://www.swebok.org/

Software Engineering Body of Knowledge

ComputingFundamentals

BOK

Software Product

Engineering

Software Management

Software Domains

Source: http://www.sei.cmu.edu/pub/documents/99.reports/pdf/99tr004.pdf

Algorithms and Data Structures

ComputerArchitecture

MathematicalFoundations

OperatingSystems

ProgrammingLanguages

RequirementsEngineering

SoftwareDesign

SoftwareCoding

SoftwareTesting

SoftwareOps& Maint

Project Process Management

RiskManagement

QualityManagement

ConfigurationManagement

Dev. ProcessManagementAcquisition

Management

ArtificialIntelligence

DatabaseSystems

Human-ComputerInteraction

Numerical &Symbolic Comp.

ComputerSimulationReal-TimeSystems

Software Engineering: Today and Tomorrow

• Information Technology Worker Shortage– Companies in nearly every industry are reporting serious

difficulty in finding and/or retraining qualified IT staff.– The Bureau of Labor Statistics growth projections for the

three core occupational classifications of IT workers (computer scientists and engineers, systems analysts, and programmers) –

• indicate that between 1996 and 2006, the US will require more than 1.3 million new Information Technology workers, an average of about 137,800 per year  

IT Market in the United States

– In 1996, there were 1.2 million IT jobs in the US, each paying an average of $55,000. IT salaries are increasing at an annual rate of 20%, compared to 4% for other industries.

– A 1998 Virginia Tech study showed there are 346,000 unfilled jobs in the IT sector

– U.S. high-tech employment approached 4.5 million in 1997. Demand for database administrators, computer support specialists, computer scientists, computer engineers, and systems analysts are all expected to more than double between 1996 and 2006

Today’s Topics

• What is Software Engineering?• What are some Software Engineering

Jobs• What are the products and processes • Some Internet Resources• Summary

Daily Dozen (12)Software Engineering Jobs/Roles

– Systems Analyst -- analyzes requirements for an application, mahy also do business case analysis (economic analysis)

– Software Architect – designs the overall structure of the application– Software Network Specialist – LAN/WAN Network design,

installation, maintenance– Software Programmer – implements the design using software

development tools, COTS software products, and computer languages

– Software Systems Administrator – administers user accounts, technology refreshment, software deployment to users, software problem solvers

– Software Database Administrator – administers the database (installation, maintenance, backup, refreshment)

Daily Dozen (12)Software Engineering Jobs/Roles

– Webmaster – designs, implements, and maintains a web site– Software Security Engineer – identification, authorization,

authentication, data protection, data integrity, CERT)– Software Tester (independent verification and validation – e.g.

NASA IV&V Facility, South Fairmont)– Software Project Manager –plan, organize, direct, coordinate,

control a software project (emphasis on risk management)– Software Configuration Manager – identify, change control, status

accounting, audits and reviews– Software Quality Manager/Engineer – software reliability

modeling, statistical quality control, defect analysis

Hot Software Engineering Skills:Today and Tomorrow

• Visual Basic -- Programming Language• Microsoft Access – Relational Database (small applications)• PowerBuilder application development tools – RAD Database Tool • Cobol programming (in demand because of the "year 2000" problem) • C and C++ programming -- Programming Languages• SAP – Enterprise Wide Application Software (financial, manufacturing,

product data management)• MVS, Unix and Windows NT – Host Operating Systems (IBM, Sun, HP,

Microsoft)• Microsoft Exchange – E-Mail Server• Lotus Notes – Web Based Publishing/Management Application Software• Database management, administration and development -Oracle and Sybase

to a lesser extent. – Oracle dominates the DBMS market• Internet/World Wide Web: Web-related skills; e.g., Java, ActiveX, CGI and

Internet Security – Definitely – look at explosion in web and e-commerce• Object-oriented skills -- Analysis, design, development

ManTech-WV InformationTechnology Jobs/Roles

• Systems Integration andSoftware Development

– Systems Analyst– Software Manager– Software Engineer– Programmer– Webmaster– Network Specialist– Systems Administrator– Database Administrator

• Electronic Commerce/ Electronic Data Interchange

• Technical Manual/ETM/ IETM Technologies

Maintenance, Operations,Inspections, Illustrated PartsBreakdowns

Computer Aided Acquisition Logistics Support (CALS)

• A strategy to reduce weapon system life cycle costs by employing Information Technology in the acquisition of technical information and the life cycle support of the weapon system

The Exchange of Information in The Exchange of Information in StandardStandard Electronic Digital FormatElectronic Digital Format

CALSTechnical Information

STEP/PDESProduct

DescriptionCompletely and AccuratelyDescribe a Product

Components or Assemblyof Parts for DesignAnalysis, Manufacture,Test and Inspection

EC/EDITransactions

Business, Information,and TechnicalTransaction Sets

ConcurrentEngineeringProcesses

Product and ManufacturingProcesses

Product DataCAD DataCAM Data

ConfigurationData

Engineering DataMaterial Data

InventoryTech Publication

Security

- RFQ/Proposals

StandardData

Exchange

Commerce At Light SpeedCommerce At Light SpeedR. S. Kidwell / ManTech

IPPTBased on

ManTech / WVA TeamManTech / WVA Team

Internet Support ( http://www.dcnicn.com ) CALS Archive Documents ( http://www.dcnicn.com )

Internet Support Based Services• Remote Group Collaboration• Information Search Engine Support• Push Technology• Security

Configuration Management• Introduction of 2549 MIL STD.• Data Model• Activity Model• Business Case Model• Testing

IETM Interoperability• Object Encapsulation• Web Addressing• Browser/Viewer• Push Technology

UN/EDIFACT Implementation• Overseas Shipping Document Process with 11 Nations• Testing Process of DoD/ORDERS Message• Transaction(s) from X12 to EDIFACT

Client/Server Architecture• DoD Application Development• Computer Hardware/ Software Selection• Internet/Intranet• Security

CALS/IDE Project: DCN/ICN

• Information TechnologyInfrastructure that uses the

Internet as a backbone to provide:Collaboration Services: Text Conferencing E-Mail and Mail Lists File Sharing Comment/Annotation CalendarInformation Services: Document Search and Retrieval Information Repository

for CALS organizations, projectstechnology transfer, best practices

Collaboration Services Technologies and Tools

• Technologies– World Wide Web Browsers

and Servers– Web Based Threaded

Discussion Groups– Multimedia Collaboration

(audio, video)– Web Based Application

Sharing, File Sharing– Web Based Voting and

Comment/Annotation

• Tools (Web Browsers and Servers)– Microsoft IE 4.x, 5.0– Netscape Navigator/Comm. 4x+– Microsoft Internet Information

Server 4.0 (web server)

• Application Tools– Allaire Forums, Cold Fusion– Microsoft NetMeeting 3.0– NTMail, NTList -- E-Mail and

Listserver– HomeSite 3.0 HTML/Cold Fusion,

JavaScript Devlopment Tool

Information ServicesTechnologies/Tools

• Technologies– Web based browsers and

servers– Relational Database

Management System– High Level Programming

Languages– Selective Push/Pull– Web Server Extensions

• Tools– Microsoft Internet Explorer 5.0– Netscape Navigator/Comm. 4.x+– Cold Fusion 4.0– Oracle Application Web Server

3.0– Oracle 8.0 OR Database

Management System– Oracle WebDB 2.0 development

tool– Visual Basic 6, JavaScript, Active

Server Pages – MS Office Server Extensions

(notification and subscription)

DCN/ICN Information Services

• Web-enabled 3-tier architecture (Web Client, Web Server, Database)

• CALS related information (world-wide) – Organizations– Implementations– Technology Transfer– Other CALS related

information repositoriesOracle Application Server (Web Server)Oracle WebDB Rapid ApplicationDevelopment ToolOracle 8.x Object-Relational Database

Today’s Topics

• What is Software Engineering• What are some Software Engineering Jobs• What are the products and processes • Some Internet Resources• Summary

Software Engineering Symposium 99Keynote Address: Walker Royce

• Top 10 Principles - Conventional (all custom software - Waterfall Development Model)1. Freeze requirements before design2. Forbid coding prior to Critical Design Review3. Use a higher order programming language4. Complete unit testing before integration5. Maintain detailed traceability among all artifacts6. Document and maintain the design7. Assess quality with independent team8. Inspect everything9. Plan everything early with high fidelity10. Control source code baselines rigorously.

Software Engineering Symposium 99Keynote Address: Walker Royce

• Top 10 Principles - Modern (integration of COTS software - Spiral Development Model)1. Architecture first2. Iterative life cycle3. Component-based development4. Change management of all artifacts5. Round-trip engineering6. Model-based analysis and design notation7. Objective quality control8. Demonstration based assessment9. Evolving levels of detail10. Configurable process

Software Engineering Process:Developmental Models

• The Linear Sequential Model -- Waterfall Model

• The prototyping model

• The RAD model

• Evolutionary SW process models – The Incremental Model

– The Spiral Model

– The Component Assembly Model

– The Concurrent Development Model

The Formal Methods Models

Linear Sequential Model

(Process Engineering Methodology)http://www.asset.com/Boeing/rde/pem/pem.htm

Spiral Development Model

• First proposed by Boehm in 1988.

• An evolutionary process model that combines prototyping with aspects of the linear sequential model.

• Can be used for rapid development of incremental versions.

Sources: http://louisa.levels.unisa.edu.au/se1/week1/html/tsld034.htm andhttp://www.ee.umanitoba.ca/~cilab/PROC/lifecyc.html

Sample Software Engineering Products (artifacts – IEEE Software Engineering Standards Collection)

• Software Project Management Plan

• Software Requirements Specifications

• Software Design Descriptions• Software Quality Assurance

Plan• Software Configuration

Management Plans• Software Verification and

Validation Plan• Software Test Documentation

• Software User Documentation

• Information Technology-Software Life Cycle Processes-Software Development Acquirer-Supplier Agreement

• Standard for Developing Software Life-Cycle Processes

• Dictionary of Measures to Produce Reliable Software

• Application Software

Challenge: Match the product to an area of the Software EngineeringBody Of Knowledge Area (SEI BOK Model)

Today’s Topics

• What is Software Engineering• What are some Software Engineering Jobs• What are the products and processes • Some Internet Resources• Summary

Some Internet Resources

• World Wide Web Consortium– Works on web publishing standards

like HTML and XML, stylesheets (CSS, XSL), and related subjects

– Internet URL: http://www.w3.org • Carnegie Mellon University –

Software Engineering Institute (SEI) – SEI Capability Maturity Model –

organizations– SEI Personal Software Process (PSP)

– individual– Internet URL:

http://www.sei.cmu.edu

Software EngineeringProcesses

Some Internet Resources

• Purdue University Center for Research in Information Assurance and Security (CERIAS)– information security (computer

security, network security, and communications security), and information assurance

– Internet URL: http://www.cerias.purdue.edu/

• Web Developer’s Virtual Library– Internet URL:

http://www.wdvl.com/Authoring

Some Internet Resources

• Tucows– Software Product Reviews

including shareware and COTS (HTML stuff, Windows 95/98/NT, Games, Music

– Internet URL: http://www.tucows.com

• Multiple Search Engine– Copernic 2000 uses 8 search

engines including Altavista– Internet URL:

http://www.copernic.com

Some Internet Resources

• Top 100 Women in Computing (1996)– Information Services, technology,

research, senior management– http://http://www.wcmh.com/wic/

previous/96top100.html• Resources for Women in

Computing, Engineering, and the Sciences– Learning, Formal Education, Job

Related Categories– Internet

URL:http://www.ohsu.edu/bicc-Library/staff/zeigenl/awsemresources.html

a. Dr Anita Borgb. Carly Fiorina

Jeopardy Game Category:Women in Computing and Technology

Some Internet Resources

• Asset– Software Engineering and Web

Technology– http://www.asset.com/

• CNET– News, hardware, web building,

downloads, trends, games, jobs…– http://home.cnet.com/

• Internet Society (ISOC)– home for the groups responsible for

Internet infrastructure standards, including the Internet Engineering Task Force (IETF) and the Internet Architecture Board (IAB).

– http://www.isoc.org/internet/history/

Software Engineering Summary

• Software Engineering has a bright future (job opportunities)

• The Web will be a major driver of software engineering growth

• Successful software engineers will constantly learn and adapt new technologies

Knowledge is Power!Do Your Best!

Learn how to solve problems.Best Wishes

on Your Future Endeavors!