Software Engineering

Context

Michael L. Collard, Ph.D.

Department of Computer Science, The University of Akron

Software & Jobs

Category Job Title
software engineering Software Engineer
software development Software Developer
programming Computer Programmer

Fundamental Activities

Software Development Diagram

Best Time to Develop Software

  • Free and easy access to tools
  • Free and easy access to documentation, examples, etc
  • Free and easy ways to post information
  • Easy, low overhead, inexpensive ways to distribute and collect payment

Reflected in Career

U.S. News “100 Best Jobs” for 2023 has “Software Developer” ranked at #1 . For software developers, for projected jobs (i.e., the number of expected new U.S. jobs in the next 10 years), the estimate is 370,500, which is 37% of all projected jobs in the top ten, and 2.65 times the number of projected jobs of the next highest. Also, of those that do not require a graduate degree, “Software Developer” is one of 6 jobs and the third highest in median salary.

Reflected in Career

In Northeast Ohio, a recent report by TeamNEO (see Page 8 of the PDF) shows that in 2021, the entry-level demand was 5,902 jobs for Computer and IT Workers, while the credentials awarded were 2,725; 2 potential jobs per graduating student.

Most software that people use is typically …

  • buggy
  • ugly and painful to use
  • challenging to add new features or get bugs fixed
  • not updated frequently enough

Changes in the software environment

"Software is eating the world"

  • A software layer gets introduced into an industry
  • Computer hardware iterates faster than mechanical systems or people
  • Software iterates faster than computer hardware
  • Companies based on a software layer often have reduced costs and can bring features to the unserved
  • Older companies are unable to adapt, so they die or become insignificant, e.g., first digital camera

Computing in Companies

  • The company provides a software-based service/product
  • The company provides a service/product with a (potential) software layer
  • The company provides a physical product

Hardware Platforms

  • Mainframe (Server)
  • Minicomputer (Server)
  • Desktop PC
  • Laptop PC
  • Tablet
  • Smartphone
  • Smartwatch
  • IoT: lights, appliances, locks, etc.

Platform: Mainframe

  • AKA "Big Iron"
  • Era: 1950s - present
  • Cost: 1 Million+
  • Large companies, government
  • E.g., IBM System/360
  • Accessed via terminals
  • Total Sold: 100,000
  • Active: 20,000 - 30,000
  • 9 Mainframe Statistics That May Surprise You
  • Software Focus: heavy-duty data processing tasks, such as database management, transaction processing, and batch processing.

Historical Platform: Word Processors

  • E.g., Sperry, etc.
  • Total Sold: 500,000 - 1 million
  • 1972 - 1984 (?)
  • Inactive
  • Software Focus: Word Processing, not general computing

Historical Platform: Minicomputers

  • E.g., DEC VAX
  • Cost: $150,000+
  • Smaller companies, Math & Engineering departments
  • Era: 1964 - 1985
  • UNIX O.S.
  • Total: 1 million
  • Software Focus: More specialized tasks, such as scientific simulations, development environments, or serving as a departmental server

Historical Platform: Apple IIs

  • Era: 1977 - 1993
  • Cost: $1,000+
  • Total: 6 Million
  • Software

Current Platform Sizes

Platform Size
PC 4.5 Billion
Installed PC Base 1.5 Billion
Yearly PC sales 305 Million
Windows 10 & 11 1.4 Billion
Active Mobile Phones 9 Billion
Active Smartphones 7 Billion
iOS: iPhone, iPad Total 2.2 Billion
Active iPhones 1.2 Billion
Yearly iPhone sales 200 Million
Xbox 166 Million
Apple Watch 142 Million

Expectations are changing

  • Reliability
  • Robustness
  • Transparency
  • New Features
  • Rate of Improvements
  • Security and Compliance
  • Usability and User Experience (UX)
  • Scalability and Performance
  • Sustainability and Ethical Considerations
  • Interoperability and Integration
  • Affordability and Business Alignment
  • Community and Collaboration
  • Support and Maintenance
  • Diversity and Inclusivity

Processes needed to…

  • Fix Bugs Quickly and Safely
  • Introduce New Features Quickly and Safely
  • Get Users What They Need
  • Stay Current with Changes in the Software Environment
  • Ensure Security and Compliance
  • Facilitate Collaboration and Communication

Stakeholders, i.e., People

  • Developers
  • Developers' management
  • Other parts of the company
  • Users
  • Users' management
  • Other parts of the users' company
  • Others in the same industry
  • Reviewers and the outside world

Single Project Development

  Education/Class Industry
Total Time days months-years
Time Span days months-years
Number of Developers 1 - 3 3 - hundreds
Number of Programming Languages 1 > 1

Goal: Success

  • Improve quality
  • Add new features
  • Update current features
  • Reduce needed development resources
  • Reduce time-to-market