【北邮果园大三】Software Engineering 软件工程 - Block 1 Day 1 - Introduction

本文介绍了软件工程的基础概念,包括软件的定义、组成部分、不同类型(系统软件、应用软件等)、好的软件特征,以及软件开发中可能遇到的挑战,如大型和小型开发失败的原因。软件工程强调质量、过程和技术方法,以及如何处理异质性、商业变革和安全等问题。
摘要由CSDN通过智能技术生成

Software Engineering 软件工程 - Block 1 Day 1

仅作个人复习与学习交流使用

1. Assessments 评分占比

5% Individual lab exercise + 30% Group-based project + 65% Final Examination

2. Day 1 - Introduction

2.1. Software

2.1.1. Definition 定义
  • Software is a collection of programs and data that tell a computer how to perform specific tasks. 软件是告诉计算机如何执行特定任务的程序和数据的集合
  • In computer science and software engineering, computer software is all information processed by computer systems, programs and data. 计算机软件是由计算机系统程序数据处理的所有信息
2.1.2. Components 组成
  • 程序Programs
  • 库Libraries(已写好,供调用的程序)
  • 数据(不可执行)Data
    • 文本text
    • 媒体digital media
  • 文档Documentation
    • 系统文档
    • 用户文档(使用手册)
    • 要求(最小储存,最低CPU性能等)Requirements
    • 设计模型Design Models
2.1.3. Types 类型

在这里插入图片描述

  • System software 系统软件(与硬件交互)
    • Operating systems操作系统: Windows. MacOS, Linux
    • Device drivers设备驱动: USB driver, Printer driver
    • Utilities实用软件:指最基础的系统工具软件,如文件管理器、磁盘管理器、任务管理器、防火墙软件等。
  • Application software 应用软件(与用户交互)
    • Word processing: Ms Word
    • Image processing: Photoshop
    • Social network: WeChat
2.1.4. Application types 应用类型
  • By purpose/task 用途
    • Productivity(IDE), Communication, Web Browsers, Media and Entertainment, Social Media, Utility, Education, Health and Fitness, Navigation, Finance, Travel, Weather, …
  • By device it runs on 设备
    • Desktop, Mobile, Web, Embedded Software, Server Software, Cloud Software, Embedded Systems Software, Gaming Software, VR&AR, IoT
  • By architecture 架构
    • Monolithic Applications
    • Microservices Applications
    • Client-Server Applications
    • Service-Oriented Architecture (SOA)
    • Event-Driven Architecture
    • Serverless Applications
    • Distributed Applications
  • By how it is developed 开发方式
    • Generic (off -the-shelf)通用
      • Developed for a general market, common needs
      • To be sold to a range of different customers
      • Example : Microsoft Office, Adobe Photoshop
      • Owned and controlled by the development organisation
    • Custom (bespoke or tailor -made)定制
      • Developed for a particular customer, for specific needs
      • Examples : software used in banks, airlines, embedded systems
      • Owned and controlled by the customer organisation
    • More and more, software companies are starting with a generic system and customising it to the needs of a particular customer. 越来越多的软件公司从通用系统开始,并根据特定客户的需求对其进行定制。
2.1.5. Good software features
  • Functionality: 功能齐全
    • perform its intended functions
  • Reliability: 可靠(结果准确,始终如一)
    • consistently produces accurate results
  • Usability: 可用,直观,界面友好
    • intuitive and user-friendly UI.
  • Scalability: 大小可变(处理增加的负载和需求)
    • handle increased loads and user demands
  • Performance: 表现出色
    • responsive and performs tasks in a timely manner
  • Security: 安全性
    • protect against potential threats
  • Maintainability: 可维护
    • easy to maintain and update
  • Compatibility: 兼容性
    • compatible with various platforms, OS, and devices
  • Flexibility: 适应性(适应不断变化的需求)
    • adapt to changing requirements and business needs
  • Documentation: 文档(清晰明了的文档)
    • comprehensive and clear documentation
  • Interoperability: 互操作性(与其它系统、应用无缝协作)
    • work seamlessly with other systems or applications
  • Error Handling: 错误处理(优雅地处理错误)
    • handle errors gracefully
  • Compliance: 合规(符合业界规范)
    • adherence to industry standards, regulations, and best practices.
  • Feedback Mechanism: 反馈机制(收集用户反馈,持续改进)
    • gathering user feedback for continuous improvement

2.2. Software engineering

“An engineering discipline that is concerned with all aspects of software production.” 软件工程准则与软件开发的方方面面都有关。

Goal: develop high-quality software 目标/重点是开发高质量软件

Software engineering is a layered technology

  • Commitment to quality 关注质量
    • Process: foundation layer 过程:根基层面
      • Methods: technical layer 方法:技术层面
        • Tools: support layer 工具:支持层面

2.3. Software failure

  • Large scale software development failure 大规模失败
    • failed or seriously delayed 开发失败,严重超时
    • fail to deliver full functionality within time and budget 无法在预算或预期内交付
    • disasters 灾难
  • Small scale software development failure 小规模失败(略)
  • Cause of failure 失败原因
    • Missing Focus丧失重点:不明确的目标,缺失商业关注重点
    • Content Issues内容问题:变换要求,技术复杂
    • Skill Issues技能问题:团队不和,技能不够
    • Execution Issues执行问题:计划不现实,临时变动计划

2.4. Software issues 影响软件开发的问题

  • Heterogeneity 异质性(不同系统、开发语言、开发环境)
  • Business and social change 商业和社会变革(新业态、新技术)
  • Security and trust 安全性
  • Scale 规模(软件必须适应非常大的规模区间)
  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值