software engineering
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!